Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— |
perl_ein-_und_ausgaben [2015/05/31 20:00] (aktuell) admin angelegt |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Ein- und Ausgaben ====== | ||
+ | kurz: | ||
+ | <code perl> | ||
+ | #!/usr/bin/perl | ||
+ | use strict; | ||
+ | use warnings; | ||
+ | |||
+ | while (<STDIN>) | ||
+ | { | ||
+ | print; | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | ausführlich (macht das Gleiche) | ||
+ | <code perl> | ||
+ | #!/usr/bin/perl | ||
+ | use strict; | ||
+ | use warnings; | ||
+ | |||
+ | while (defined($_ = <STDIN>)) | ||
+ | { | ||
+ | print; | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | sehr kurz: | ||
+ | <code perl> | ||
+ | #!/usr/bin/perl | ||
+ | use strict; | ||
+ | use warnings; | ||
+ | print sort <>; # sortiert entweder die übergebene Datei oder das, was von STDIN kommt. | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ausführlich | ||
+ | <code perl> | ||
+ | #!/usr/bin/perl | ||
+ | use strict; | ||
+ | use warnings; | ||
+ | my @eingabe; | ||
+ | |||
+ | if (@ARGV) # Kommandozeilen Argumente | ||
+ | { | ||
+ | foreach my $file ( @ARGV ) | ||
+ | { | ||
+ | |||
+ | # -f $file and -r $file or die; # -f testet ob es ich um eine Datei handelt. | ||
+ | # -r testet ob die Datei lesbar ist | ||
+ | # -w testet ob die Datei schreibbar ist | ||
+ | # die = Ende des Programms | ||
+ | unless ( -f $file and -r $file ) # unless = ifnot | ||
+ | { | ||
+ | warn "$file ist kein lesbare Datei"; | ||
+ | # print STDERR "$file ist kein lesbare Datei"; # fast das Gleiche wie warn | ||
+ | next; # nächster in der Schleife | ||
+ | # "last" würde die Schleife sofort beenden. | ||
+ | } | ||
+ | |||
+ | open FILE, $file # FILE = filehandle (STDIN ist auch ein filehandle) | ||
+ | or die "Konnte Datei $file nicht öffnen: $!"; | ||
+ | # or die = falls es die Datei nicht gibt oder nicht lesbar ist. | ||
+ | # => Programmende mit entsprechender Meldung. | ||
+ | |||
+ | push @eingabe, <FILE>; | ||
+ | close FILE; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | else | ||
+ | { | ||
+ | while (<STDIN>) | ||
+ | { | ||
+ | chomp; | ||
+ | if ($_ eq 'fertig') | ||
+ | { | ||
+ | last; | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | push @eingabe, $_.$/; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | print "Ausgabe:\n"; | ||
+ | print sort @eingabe; | ||
+ | |||
+ | # Ausgabe in Datei | ||
+ | my $ausgabeDatei = '/tmp/ausgabe.txt'; | ||
+ | open AUSGABEDATEI, ">$ausgabeDatei" # ">.." öffnet die Datei zum schreiben | ||
+ | or die $!; | ||
+ | print AUSGABEDATEI sort @eingabe; | ||
+ | close AUSGABEDATEI; | ||
+ | |||
+ | </code> |