--------------------------------Linux Guide---------------------------------- by Ingo Blechschmidt (c) 2002 ----------------------------------------------------------------------------- ------------------------- Operationen mit Dateien in Perl ------------------------- Son Jul 1 10:10:31 MEST 2001 ------------------------- Dateien Perl $_ split chomp sort grep | open close ----------------------------------------------------------------------------- Dieser Artikel zeigt, welche Möglichkeiten Perl für die Verarbeitung von Dateien bietet. ----------------------------------------------------------------------------- # Von der Standard-Eingabe lesen. # --------CODE--------: Gebrauch von while() { # Eine Zeile von STDIN wird in $_ # eingelesen. print; # Ohne Parameter zeigt print den Inhalt der # Variable $_ an. } --------/CODE-------- # Von den Standard-Eingabe lesen, diesmal mit Verwendung von "echten" Variablen. # --------CODE--------: open, chomp und print open(A, "/dev/tty") || die "Can' t connect to /dev/tty!; # Der Dateihandler A wird erstellt. Kann # /dev/tty nicht geöffnet werden, beendet # sich das Programm. while($a = chomp()) { # Der Variable $a (nicht !) wird, # mit Anwendung von chomp (\n am Zeilenende # entfernen), die nächste Zeile von # zugewiesen. print "$a\n" # Ausgabe. } --------/CODE-------- # Das Ganze mit Pipes # Im Nachfolgendem Beispiel wird gleich die Ausgabe an grep und sort weitergeleitet, die unerwünschte Zeilen ausfiltern und sortieren: --------CODE--------: | open(A, "|grep -v Unerwünscht|sort -nf") || die "Can' t connect!" print A "Z\n" print A "A\n" print A "5\n" print A "0.5\n" print A "Unerwünscht\n" print A "52\n" close(A); # Ausgabe: # A # Z # .5 # 5 # 52 --------/CODE-------- # split # --------CODE--------: split open(A, "; @b = split(',', $a); # In das Array @b werden die mit Komma # getrennten Daten eingelesen. print "\@b\n" --------/CODE-------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- This document is distributed under the terms of the GNU Free Documentation License.