ein Kapitel zurück                                           ein Kapitel weiter

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...

  • $0 - Programmname

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 zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf