Thread Aufruf von Subroutinen (26 answers)
Opened by bianca at 2010-01-29 19:35

pq
 2010-01-31 12:21
#131631 #131631
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
2010-01-29T19:23:46 bianca
Quote
Eine Subroutine kann mit einem expliziten & Präfix aufgerufen werden. Das & ist optional in neueren Perl-Versionen, genauso wie Klammern, wenn die Subroutine vorher deklariert wurde. Das & ist aber nicht optional, wenn man die Subroutine nur beim Namen nennen möchte, etwa als ein Argument für defined() oder undef(). Auch nicht optional ist es, wenn man einen indirekten Subroutinen- Aufruf machen möchte mit einem Subroutinen-Namen oder einer Referenz, d.h. wenn man &$subref() oder &{$subref}() benutzt, obwohl dieses Problem von der Notation $subref->() gelöst wird. Siehe perlref für Details zu diesem Thema.


google sagt dazu:
Quote
Ein Unterprogramm kann aufgerufen werden unter Verwendung eines expliziten "&" eingeleitet werden. Das "&" ist optional in der modernen Perl, ebenso wie Klammern, wenn die Subroutine wurde vordeklarierte. Das "&" ist nicht optional, wenn nur der Benennung der Unterroutine wie wenn es als Argument an () definiert oder undef () verwendet. Auch ist es optional, wenn Sie zu einer indirekten Unterprogramm-Aufruf mit einer do - Unterprogramm Bezeichnung oder mit dem "& $ Subref ()" oder "& Subref) ($ ()" Konstrukte, obwohl die "$ Subref-> ()"-Schreibweise löst dieses Problem.
Siehe perlref, um mehr über das alles.


besonders hübsch finde ich den satz "Das "&" ist nicht optional, wenn nur der Benennung der Unterroutine wie wenn es als Argument an () definiert oder undef () verwendet."

mag jeder selber entscheiden, was er besser findet =)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Aufruf von Subroutinen