我在Perl中遇到了一個很小的難題。爲哈希鍵值創建一個數組(Perl)
我正在閱讀某個文本文件以瞭解某些信息。在閱讀文本文件時,我從文本中選擇了一些鍵;隨着我進一步閱讀,我希望爲鍵保存一組值。
參見例如
Alpha 1
Something: 2132
Something: 2134
Alpha 2
Something: 2132
Something: 2134
我文件讀入到一個數組稱爲線:
my $h;
my $alpha;
for my $line (@lines){
if ($line =~ m/Alpha (\d+)/){
$alpha = $1;
$h->{$alpha} =(); # create empty array for key?
}
elsif ($line =~ m/Something: (\d+)/){
push($h->{$alpha}, $1);
}
}
顯然,它給了我一個錯誤:
Type of arg 1 to push must be array (not hash element) at test.pl line 28, near "$1)"
Execution of test.pl aborted due to compilation errors.
無法想出解決辦法。
太好了。我現在明白了。謝謝。 – p0lAris 2013-03-07 05:23:19
測試用例:'$ alpha'可能會保留'undef'。這不應該被照顧嗎? – 2013-03-07 05:57:55