Mögliche Duplizieren: How do pass one array and one string as arguments to a function?Pass-Array und Skalar zu einer Perl-Subroutine
I eine Funktion habe, oder ein Unterprogramm, das als ein Array in dem ersten Parameter nimmt und den zweiten Parameter als ein Skalar. Zum Beispiel
sub calc {
my @array = $_[0];
my $scalar = $_[1];
print @array, $scalar;
}
Das Problem ist, dass die Funktion auf den ersten Wert des Arrays besteht in der Anordnung gleich macht, und die skalare der zweite Wert des Arrays in übergeben zu werden. Wenn ich die ersten will Array, um das gesamte Array zu sein, muss ich keine tiefe Kopie des Arrays erstellen. Zum Beispiel
my @array = ('51', 'M');
my $scalar = 21;
und
calc(@array, $scalar)
drucken 51 M
wenn ich 51 M 21
will.
Beachten Sie, dass der zweite Teil meiner Antwort eine Kopie des Arrays erstellen wird. Sie könnten es auch als Referenz belassen und in Ihrer Funktion entsprechend darauf zugreifen. – happydave
Das funktioniert allerdings nicht, ich habe es ausprobiert. Hast du das getestet? –
Sorry, ich denke, dass @ vor dem [0] angewendet wird. Ich habe eine feste Version mit Klammern um das $ _ [0] gelegt. – happydave