Perl中如何让Hash的值为数组

这涉及到Perl的scalar和Array语境问题。

有问题的代码:

$new_hash{$some_key1} = @some_array1;

foreach($newhash{$some_key1}) {
    print $_
}

打印的结果是只输出了一个元素,其值为数组的长度。

这里的问题是,赋值给Hash的Value是数组的长度,需要强制使用数组语境@{$hash{$key}}:

@{$new_hash{$some_key1}} = @some_array1;

$value = $newhash{$some_key1};
foreach(@{$value}){
}

 

Leave a Reply

Your email address will not be published.