Wann &foo(“bla”); und wann foo(“bla”);
Aqua
- perl
Hallo!
Jedesmal wenn ich in Erfahrung bringen will,
wann man beim Subroutinen-Aufruf ein & Zeichen davor setzt
und wann nicht, erfahre ich oft:
"Wenn Du ein Anfaenger bist, schreibe kein & davor,
wenn Du Profi bist, darfst du eins davor machen"
Hoffentlich gebt ihr mir nettere Antworten dazu,
wann soll ich das & davormachen?
Bei Referenzen brauche ich das & sowieso weil ich &foo("bla");
machen muss, aber wenn ich keine Referenzen verwende, wann
brauche ich das & und wann nicht?
Und wann ist es absolut verboten ein & davor zu machen?
Danke!
Aqua
Hallo Aqua,
[... & die 20234092384024820342834029384. ...]
perldoc perlsub
Grüße,
CK
Jedesmal wenn ich in Erfahrung bringen will,
wann man beim Subroutinen-Aufruf ein & Zeichen davor setzt
und wann nicht, erfahre ich oft:"Wenn Du ein Anfaenger bist, schreibe kein & davor,
wenn Du Profi bist, darfst du eins davor machen"
Christian und Ich hatten gerade (ist schon im Archiv) eine längere Diskussion darüber.
Bei Referenzen brauche ich das & sowieso weil ich &foo("bla");
Das ist falsch, da du ja so kein Referenz erzeugst, sondern eine Referenz aus dem Rückgabewert von dem Funktionisaufruf.
Du meinst: &foo;
machen muss, aber wenn ich keine Referenzen verwende, wann
brauche ich das & und wann nicht?
Du brauchst das '&' nur, wenn du:
a.) den Parameter @_ automatisch weiterleiten willst:
sub sub1
{
&sub2; # hier kriegt sub2 alle Parameter von sub1 übergeben
}
b.) wenn du das Prototyping übergehen willst.
Das wird genauer in dem Link den Christian dir gezeigt hat erklärt.
Struppi.