Moin!
Frage 2 :
Wenn ich Werte einer Subroutine übergebe zB :
&test($wert1,$wert2);
Bitte(!) nicht &test() schreiben -- test() reicht voellig aus.
Das & ist ein Ueberbleibsel aus Perl4 und hat unter Umstaenden
einige negative Auswirkungen. Fuer mehr Infos, schau dir perldoc
perlsub an.
Kleine Ergaenzung.
Ueberbleibsel ist nicht ganz richtig.
Nun -- es *ist* ein Ueberbleibsel.
Das '&' hat schon seinen Sinn, wenn man in einer Subroutine eine
andere ohne Argument aufruft wird durch das '&' davor der
aktuelle Array '@_' uebergeben.
Richtig. Das waren die unangenehmen Nebenwirkungen, von denen ich
sprach.
Aber Du hast recht - wenn man sowas nicht macht, sollte man es
sicherheitshalber und korrekterweise weglassen.
Ich wuerde ehrlich gesagt sagen, im Sinne eines sauberen
Programmierstils sollte man statt
sub blub {
&blah;
}
lieber
sub blub {
blah(@_);
}
schreiben. Das mag zwar etwas weniger performant sein (es muss erst
eine Kopie der Liste angelegt werden, IMHO), aber wenigstens weiss
man auf den ersten Blick, was gemeint ist.
Gruesse,
CK