Thread Hash in Sub dereferenzieren
(18 answers)
Opened by Opaxtl at 2007-04-19 16:24
[quote=Opaxtl,19.April.2007, 15:28]Also hat im Grunde nur das @_ hinter shift gefehlt? Na gut.[/quote]
Nein, wenn du lediglich folgendes Schreibst: Code: (dl
)
my %hash = %{shift}; Dann versuchst er %shift nach %hash zu Kopieren! %shift gibt es aber bei dir nicht. Ohne "use strict;" wird dann an der Stelle einfach eine neue leere Package variable %shift angelegt die dann nach %hash kopiert wird. Das was du aber möchtest ist, das "shift" innerhalb der Klammern nicht als Variablennamen angesehen wird, sondern Code ist der Ausgeführt werden soll. Um das zu verdeutlichen reicht aber auch schon ein '+' Zeichen davor. Code: (dl
)
my %hash = %{+shift}; Variablen kann man halt wie gesagt immer durch Zusätzliche geschweifte Klammern angeben. Code: (dl
)
1 #!/usr/bin/perl Genau so funktioniert ja auch das Derefernzieren...\n\n <!--EDIT|sid burn|1177075695--> Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
|