Struppi: Wann &foo(“bla”); und wann foo(“bla”);

Beitrag lesen

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.