Cheatah: random-link ohne Zufallsprinzip

Beitrag lesen

Hi,

my($ErrorText) = @_;
perldoc -f shift
Stilfrage: Was genau gefällt Dir an "shift" besser als an der Zuweisung?

wenn hier mehr als ein Parameter übergeben wird, würde der Rest ins Nirvana gefüllt werden. Wenn Du bei mehreren Parametern mittels z.B.

my ($var1, $var2, $var3) = @_;

die Werte füllst, jedoch weniger übergeben wurden als erwartet, ist der Rest undefined.

Wenn ich 10 Parameter habe, kann ich die in _einer_ "my(...)=@_"-
Zuweisung versorgen ... was nützt mir "shift" in diesem Zusammenhang?

my ($var1, $var2, $var3) = (shift||42, shift||'test', shift||&blablub);

(Außer daß es @_ zerstört, was ich gar nicht vor hatte?)

Wozu brauchst Du @_ noch, nachdem Du dessen Inhalt in Variablen gerettet hast? In den paar Fällen, wo das wirklich sinnvoll ist, kopierst Du es halt erst in ein lokales Array. Bedenke übrigens auch, dass eine magische Variable wie @_ evtl. nicht _nur_ durch den Funktionsaufruf gefüllt wird - später in der Funktion können die Werte durch etwas anderes überschrieben werden.

Cheatah