Thread Variablen/Objekte an Funktionen übergeben
(3 answers)
Opened by Kean at 2013-06-20 14:27
Eigentlich gibt es in Perl bei Parameterübergabe nur drei Dinge zu beachten:
Der erste/zweite Punkt führt dazu, dass man nicht zwei Arrays direkt übergeben kann, ohne Informationen über die Arraygrenzen zu verlieren (es kommt in der Funktion genau ein Array an, das eben von beiden Arrays die Elemente enthält. Der dritte Punkt ist auch sehr interessant, er gilt bei Arrays aber für die Array-Elemente selbst, nicht für die Arrays selbst: Code: (dl
)
1 $ perl -MData::Dumper -wE'@a=qw(1 2 3); @b=qw(4 5 6);add1(@a, @b);say Dumper \@a, \@b;sub add1{++$_ for @_}' Aus diesem Grunde bietet es sich daher oft an, Arrays als Referenzen zu übergeben (dann übergibt man eben nicht alle Elemente). Außerdem wird ein Call-by-Value durch Code wie den folgenden simuliert: Interessant ist, dass man trotz Call-by-Reference auch Immediates übergeben kann (es ist dann z.B. eine Referenz auf eine Zahl im Speicher). Ich habe dafür man irgendwo den Terminus "Call by value reference" gelesen. Als Bonus kannst du außerdem noch über Prototypen in perlsub nachlesen, die die Übergabeart verändern können. Last edited: 2013-06-20 20:45:34 +0200 (CEST) |