在Perl中,我应该如何填充这个多级哈希?

时间:2017-08-09 18:04:02

标签: perl hashtable

我正在尝试找到Perl最好的方法来填充多级哈希,同时考虑到丢失的密钥 所以我正在使用它:

if( !exists $customer_data{$customer_id} ) {  
     $customer_data{$customer_id} = {};    
}    
$customer_data{$customer_id}->{$salesman_name} //={};
$customer_data{$customer_id}->{$salesman_name}->{$timestamp} = 1;   

这很奇怪,因为我使用的是exists//=,但我不确定如何正确而简洁地编写此代码。
结果如下:

'1000' => {                                                                                             
    'jsmith' => {                                                                              
         1502121730 => 1,                                                           
         1512321730 => 1                                                        
     }                                                                              
} 

1 个答案:

答案 0 :(得分:5)

请参阅autovivification中的perldoc perlreftut

$customer_data{$customer_id}{$salesperson_name}{$timestamp} = 1;

就足够了。

另外,您可能不想要性别变量名。