2010-09-23 99 views

回答

30

這將通過「TEST1」鍵將值添加到存儲在散列表中的數組的末尾。

push(@{ $TEST { TEST1 } }, "some value "); 

我用@{...}取消引用數組引用。 Perl自動創建內部數組引用然後需要。

8

push函數接受一個數組,所以你必須尊重它放回一個數組:

push @{$TEST{TEST1}}, "some value"; 

而且,你的風格讓我你不使用strict編譯認爲。一個更好的方式來寫代碼是:

#!/usr/bin/perl 

use strict; 
use warnings; 

sub atest { 
    my $test = shift; 
    push @{$test->{TEST1}}, "some value"; 
} 

my %test; 
atest(\%test); 

use Data::Dumper; 

print Dumper \%test; 
+0

現在你有一個陣列數組的散列。 – mkb 2010-09-23 14:10:43

+0

@Matt凱恩是的,我注意到,當我回去充實它。 – 2010-09-23 14:15:29

1

我想你想:

%TEST; 
$TEST{TEST1}[0] = "some value" 
push @{ $TEST{TEST1} }, "some other value" 

現在,$ {測試TEST1}應相當於["some value", "some other value"]

-5

它這個Perl然後看這裏,不用擔心索引Perl push function reference

+1

您的鏈接根本不涉及引用或多級哈希。這是令人困惑的部分。 – mkb 2010-09-23 14:13:09