2014-12-09 47 views
0

哈希值的陣列。如果我寫initalization在Perl

my %modules = (
Paths => ["$path","$other_path"] 
); 

我可以通過

print $modules{Paths}[1]; 

訪問,但我會初始化它像

my @rray = ("$path", "$other_path"); 
my %modules = (Paths => @rray); 

但後來它不工作與

print $modules{Paths}[1]; 

我該怎麼辦?

回答

2

您需要參考@rray陣列。

my %modules = (Paths => \@rray); 

你可能要檢查perldoc perlreftutperldoc perldsc

my @rray = ("$path", "$other_path"); 
my %modules = (Paths => @rray); 

結果鍵/值對的平面化列表,

my %modules = ("Paths", "$path", "$other_path"); 
#    key1  value1 key2 

在這種特定情況下將發出警告Odd number of elements in hash assignment下警告。

+0

是的,它的工作原理...爲什麼? – alabamajack 2014-12-09 12:37:35

+0

@alabamajack檢查更新。 – 2014-12-09 12:40:07