我正在尝试找到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
}
}
答案 0 :(得分:5)
请参阅autovivification中的perldoc perlreftut。
$customer_data{$customer_id}{$salesperson_name}{$timestamp} = 1;
就足够了。
另外,您可能不想要性别变量名。