&subroutine, &subroutine() od. subroutine()
Frédéric
- perl
Hi,
Ich habe gerade erfahren, dass man beim Aufruf von Subroutinen den "&" vorne gar nicht braucht.
Da drängt sich halt schon die Frage, was der Unterschied ist. Vieleicht gibt es kar keinen. Unter SelfHtml heisst es nur, man kann beides schreiben.
Und wie ist es mit den () hinten? Macht das auch ein Unterschied?
Also was ist zu empfehlen?
1. &subroutine
2. &subroutine()
3. subroutine()
4. subroutine (Darf man nicht, oder??)
Gruss,
Frédéric
Moin Moin !
- &subroutine
- &subroutine()
Perl4-Notation, nicht mehr zu empfehlen.
- subroutine()
Perl5, meine Lieblingsnotation.
- subroutine (Darf man nicht, oder??)
Doch, doch, darf man. Ist aber gelegentlich unübersichtlich.
Steht in der Doku zu Perl aber auch drin. Lesen bildet.
Alexander
Hallo Frédéric,
Ich habe gerade erfahren, dass man beim Aufruf von
Subroutinen den "&" vorne gar nicht braucht.
Das & vor Subroutinen ist veraltete Perl4-Schreibweise.
Da drängt sich halt schon die Frage, was der Unterschied
ist. Vieleicht gibt es kar keinen.
Doch, den gibt es. Ruft man
'&routine;' auf, wird das aktuelle @_ (was immer auch drin
sein mag) als Argumentenliste uebergeben. Mit '&routine();'
bzw. '&routine(argumentenliste);' wird @_ korrekt gesetzt,
ebenso bei 'routine;' und 'routine();'.
- subroutine()
- subroutine (Darf man nicht, oder??)
Beide Schreibweisen sind erlaubt (bei 4 muss nur die
Subroutine vorher schon bekannt sein) und sinnvoll. Das & ist
veraltet und gefaehrlich, da es Nebeneffekte hat, die man uU.
nicht sofort sieht.
Gruesse,
CK
Hi,
Vielen Dank ihr beiden.
Juhe, jetzt darf ich mein Quellcode nach Aufrug von Subroutines suchen;)
Gruss,
Frédéric
Hallo,
Ergänzend zu den bisherigen Ausführungen hier noch einige 'Literaturhinweise':-)
http://www.perldoc.com/perl5.6/pod/perlfaq7.html#What's-the-difference-between-calling-a-function-as--foo-and-foo()-
http://www.perldoc.com/perl5.6/pod/perlsub.html
Grüße
Klaus