Anfängerfrage
Bjoern
- perl
0 Stefan Muenz0 Ingo
Kann mir jemand den Unterschied der folgenden Scripts erklären ?
Bei folgendem Script wird als Ergebnis "Dienstag" ausgegeben (was mir auch einleuchtet):
@eingabe = ("Montag","Dienstag");
shift(@eingabe);
print @eingabe;
Ich habe aber auch schon oft gesehen, daß shift folgendermaßen angewendet wird:
@eingabe = ("Montag","Dienstag");
@eingabe = shift;
print @eingabe;
Bei diesem Script wird kein Ergebnis ausgegeben.
Was macht das shift denn in diesem Fall ?
Sorry, wenn die Frage so anfängerlike ist, aber ich weiß es nun mal nicht.
Gruß
Bjoern
Hallo Bjoern
Ich habe aber auch schon oft gesehen, daß shift folgendermaßen angewendet wird:
@eingabe = ("Montag","Dienstag");
@eingabe = shift;
print @eingabe;
Bei diesem Script wird kein Ergebnis ausgegeben.
Vielleicht hilft dir die englische Beschreibung aus der neuen und endlich mal hypertextgerechten Aufbereitung der Perl-Doku weiter: http://www.perl.com/pub/doc/manual/html/pod/perlfunc/shift.html.
Entscheidend dort der Satz ab "If ARRAY is omitted...".
viele Gruesse
Stefan Muenz
Kann mir jemand den Unterschied der folgenden Scripts erklären ?
Bei folgendem Script wird als Ergebnis "Dienstag" ausgegeben (was mir auch einleuchtet):
@eingabe = ("Montag","Dienstag");
shift(@eingabe);
print @eingabe;Ich habe aber auch schon oft gesehen, daß shift folgendermaßen angewendet wird:
@eingabe = ("Montag","Dienstag");
@eingabe = shift;
print @eingabe;Bei diesem Script wird kein Ergebnis ausgegeben.
Was macht das shift denn in diesem Fall ?
Sorry, wenn die Frage so anfängerlike ist, aber ich weiß es nun mal nicht.
Gruß
Bjoern
im ersten fall ists klar, wenn hinter shift ein array angegeben wurde, dann wird das erste element aus dem array zurückgeliefert und aus dem array (@eingabe) gelöscht.
im zweiten fall, wird hinter shift nichts angegeben wodurch sich shift im hauptprogramm auf das Array @ARGV bezieht und im unterprogramm auf @_ .
da diese in diesem fall wohl leer waren,
wurde @eingabe durch "" befüllt, also nix.
so auch bei pop (macht dasselbe mit dem letzten element)