[Next] [Up] [Previous] [Contents] [Index]
Next: Das Skript Up: Perl Previous: Warum ?

Erste Schritte in PERL

 

Mit PERL lassen sich nicht nur Skripte schreiben, sondern PERL bietet auch auf der Kommandozeile die Möglichkeit Befehle zu verarbeiten.
Mit der Option -e können PERL-Befehle auf der Kommandozeile angegeben werden:

lackas@antares:~/ > perl -e 'print "Hallo Welt\n"'
Hallo Welt
PERL gibt auf dem Bildschirm die Zeichenkette ``Hallo Dolly'', gefolgt von einem Zeichenvorschubzeichen[+] (n) aus.
Mit der Option -n weist man PERL an, jede Zeie einer Datei zu bearbeiten:
lackas@antares:~/ > perl -ne 'print' /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/bash
daemon:x:2:2:daemon:/sbin:/bin/bash
lp:x:4:7:lp daemon:/var/spool/lpd:/bin/bash
news:x:9:13::/var/lib/news:/bin/bash
Hier wird jede Zeile der Paßwort-Datei mit print ausgegeben.
Jetzt wollen wir PERL dazu bringen uns nur die Zeile des Users root auszugeben.
lackas@antares:~/ > perl -ne 'print if /^root/' /etc/passwd
root:x:0:0:root:/root:/bin/bash
Wir verwenden hier einen regulären Ausdruck /^root/, der auf alle Zeilen zutrifft, die mit 'root' anfangen. Durch if weisen wir PERL an, print nur auszuführen, wenn der reguläre Ausdruck auf die Zeile paßt.
Die Zeilen der Datei werden dabei über STDIN des PERL-Skripts geleitet, so daß wir das auch für andere Fälle ausnutzen können:
lackas@antares:/home/lackas > date | perl -ne 'print "Heute ist $_"'
Heute ist Thu Dec 31 15:59:26 MET 1998
Hier landet die Ausgabe von date im STDIN von PERL und wird dann ausgegeben, die Variable $_ enthält hier jeweils den Inhalt der einzelnen Zeilen[+].
Die -c dient zum Überprüfen der Syntax eines Perlbefehls (oder eines ganzen Skriptes):
lackas@antares:/home/lackas > perl -ce 'print if /root' /etc/passwd
Search pattern not terminated at -e line 1.
lackas@antares:/home/lackas > perl -ce 'print if /root/' /etc/passwd
-e syntax OK


[Next] [Up] [Previous] [Contents] [Index]
Next: Das Skript Up: Perl Previous: Warum ?


Tue Dec 7 13:01:45 MET 1999