Thread methoden mit und ohne &?
(7 answers)
Opened by susi at 2006-06-21 17:02
* Wie renee schon sagte: Mit &, ohne Klammern, wird automatisch das aktuelle gültige Parameterarray @_ wieder als Parameter übergeben. Selten, dass man das absichtlich macht.
* docsnyders Beispiel ist evil, weil es symbolische Referenzen benutzt und unter "use strict" kracht. Aber in einem stimmt's: Wenn Name oder Referenz einer Subroutine gebraucht wird, muss das "&" davor stehen. (Bsp.: $mysubref = \&mysub;). * Mit "&" werden Prototypen ignoriert. Wenn man Prototypen nutzt, darf man also kein "&" vor den Aufruf setzen. * Mit "funktionsname()" ist man immer auf der sicheren Seite, ob mit oder ohne Prototypen. * Historisch gab es zuerst nur die Form mit "&". Weil es so gut zu den anderen Sigils passt ("$" für Skalare, "@" für Arrays etc.) und selbstdefinierte Funktionen von den eingebauten Perl-Funktionen unterscheidet, benutzen viele immer noch die Form mit dem "&" davor. (Gell, strat? ;)) |