2015-03-22 16 views

Odpowiedz

8

@$args{"ARRAY"} jest odpowiednikiem @{$args}{"ARRAY"}, a nie @{$args{"ARRAY"}}. Od perlref, section "Using References":

Ponieważ jest w stanie pominąć nawiasów klamrowych dla prostego przypadku $$x, ludzie często popełniają błąd postrzegania symboli dereferencji jako właściwych operatorów, i zastanawiam się o ich pierwszeństwa. Gdyby jednak były, , można użyć nawiasów zamiast nawiasów klamrowych. To nie jest przypadek . Rozważ różnicę poniżej; przypadek 0 jest wersja short-ręka przypadku 1, nie Przypadek 2:

$$hashref{"KEY"} = "VALUE";  # CASE 0 
    ${$hashref}{"KEY"} = "VALUE";  # CASE 1 
    ${$hashref{"KEY"}} = "VALUE";  # CASE 2 
    ${$hashref->{"KEY"}} = "VALUE";  # CASE 3 
Powiązane problemy