Thread Parameterübergabe an eine Funktion
(7 answers)
Opened by GwenDragon at 2005-03-15 16:26
[quote=renee,15.03.2005, 22:59]Würde man wohl eher als ($$) schreiben, denn Referenzen sind Skalare...[/quote]
Das macht aber einen gewaltigen Unterschied! Wenn der Prototyp sub foo ($$) lautet, dann werden wirklich zwei Skalare erwartet, d.h. wenn du zwei Arrays angibst, werden nur die ersten beiden Werte des ersten Arrays uebergeben. (Es gibt leider keine Fehlermeldung, weil Prototypen nur waehrend der Kompilationsphase geprueft werden, und da steht ja noch nicht fest, wie viele Elemente die Arrays enthalten, d.h. wieviele Argumente die Funktion tatsaechlich bekommt.) Wenn der Prototyp dagegen sub foo (\@\@) lautet, dann muessen zwei Arrays als Argumente angegeben werden, d.h. zweimal etwas, das mit einem '@' anfaengt. Es werden dann automatisch Referenzen auf diese Arrays uebergeben. |