![ein Kapitel weiter](../weiter.gif)
Wir haben die Kommandozeilenargumente schon einmal gesehen...
#!/usr/bin/perl -w
$counter=0;
while(@ARGV){
print "argument[$counter] " , shift, "\n";
$counter++
};
Bei dieser Methode die Kommandozeilenargumente zu durchlaufen,
muss erwähnt werden, dass mit Hilfe von shift, @ARGV entleert
wird und somit nicht mehr für weiter Auswertungen zur Verfügung
steht.
Bei Ausführung dieses Programms wird mancher C-Programmierer
meinen, die Ausgabe sei falsch. Beispielsweise wir machen folgende
eingaben...
/usr/bin/perl -w programm.pl hallo hallo2
Die Ausgabe lautet dann...
argument[0] hallo
argument[1] hallo2
In C haben sie gelernt das argv[0] für den Programmnamen steht. Nun
in Perl ist dies nicht so. In Perl steht argv[0] für das was in C
argv[1] ist usw. Um den Programmnamen in Perl zu erfahren, gibt es
die reservierte Variable...
Vervollständigen wir unser Programm von zuvor nochmals....
#!/usr/bin/perl -w
$counter=0;
print "Programmname $0\n";
while(@ARGV){
print "argument[$counter] " , shift, "\n";
$counter++;
};
Um die einzelnen Argumente durchzulaufen ohne @ARGV durch shift
zu zerstören, verwenden wir am besten eine foreach-Schleife.....
#!/usr/bin/perl -w
$counter=0;
print "Programmname $0\n";
foreach(@ARGV){
print "argument[$counter] $_ \n";
$counter++;
}
Natürlich können sie auch auf die einzelnen Argumente mit Hilfe
des Indexes zugreifen...
#!/usr/bin/perl -w
print "Programmname $0\n";
print "argument[0] " , $ARGV[0] , "\n" if defined $ARGV[0];
print "argument[1] " , $ARGV[1] , "\n" if defined $ARGV[1];
print "argument[2] " , $ARGV[2] , "\n" if defined $ARGV[2];
#usw.
![ein Kapitel weiter](../weiter.gif)
© 2001,2002 Jürgen Wolf
|