我在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