以下perl代码的目的是什么?
$logline{$cod}{s1} = scalar keys %{$valid{$cod}};
"有效"应该被视为hashref,$ cod应该被视为一个键。是吗?
" s1"左手代表,又一把钥匙?
答案 0 :(得分:2)
它将$ valid {$ cod}引用的hashref中的元素数存储到LHS中。
"valid" should be treated as a hashref,
不,“有效”是%有效散列的名称,$ valid {}访问散列中的一个值。
$ cod是两个地方的哈希键。 “s1”也是一个哈希键。
答案 1 :(得分:2)
获取%valid
索引的$cod
的值。
$valid{$cod}
将该值视为hashref。
%{$valid{$cod}}
获取该hashref的键列表。
keys %{$valid{$cod}}
找出该列表中有多少个键。
scalar keys %{$valid{$cod}}
(这不是它的实际工作方式,而是在标量上下文中调用keys
返回一个数字,表示它在列表上下文中返回的元素数量。)
哈希%logline
由$cod
索引。
$logline{$cod}
它本身就是一个hashref,由s1
索引。
$logline{$cod}{s1}
第一个段的值存储在第二个
指示的位置$logline{$cod}{s1} = scalar keys %{$valid{$cod}};