将新值添加到数组哈希的简写

Mat*_*eck 7 perl

下面是我想在某种循环中构建数组哈希时必须编写的代码块的概括.

#get value and key that I want to use
my $value = getvalue();
my $key = getKey();

#add value to hash using key
if($hash_of_arrays{$key}){
    push(@{$hash_of_arrays{$key}}, $value);
}
else{
    $hash_of_arrays{$key} = [$value];
}
Run Code Online (Sandbox Code Playgroud)

为这样一个简单的任务编写if语句非常繁琐,但需要完成它,因为在哈希中未定义其键时推送一个值会导致问题.我只是想知道是否有任何简写来写这个 - 我不必写$hash_of_arrays{$key}三次.

hob*_*bbs 14

push @{ $HoA{$key} }, $value;效果非常好,是推荐的事情.如果您使用它的代码有"问题",那么请询问这些问题.

  • 这种方法称为自动生成.Brian d Foy有一篇关于如何关闭它的文章:http://www.effectiveperlprogramming.com/blog/1256 (2认同)