Thread Hash in Subroutinen
(12 answers)
Opened by Andi123 at 2017-03-30 18:58
Zweite Antwort mit mehr Bezug auf Deinen Beitrag:
Guest Andi123 Du übergibst ja auch nur eine Referenz auf den Hash. Anscheinend hast Du auch keine Warnungen use warnings; eingeschaltet. Denn mit Warnungen solltest Du eine entsprechende erhalten, dass die Hash-Zuweisung eine ungerade Anzahl an Elementen enthält. perlfunc shift holt nur ein Element ab, in diesem Fall die Referenz auf den Hash. Beim zweiten Versuch wird die gesamte Liste der Argumente übergeben; da aber nur zwei da sind, landet im Hash wieder nur ein Element, die Referenz auf den originalen Hash. Also entweder: Code (perl): (dl
)
1 2 3 4 5 6 sub foo { my $key = shift; my $hashref = shift; # und dann die Hash-Referenz derefenzieren } oder Code (perl): (dl
)
1 2 3 4 5 6 sub foo { my $key = shift; my %hash = @_; # und dann normal mit %hash als Hash arbeiten } benutzen. meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |