$ logline的解释{$ cod} {s1} =标量键%{$ valid {$ cod}};

时间:2011-12-21 22:14:27

标签: perl

以下perl代码的目的是什么?

$logline{$cod}{s1} = scalar keys %{$valid{$cod}};

"有效"应该被视为hashref,$ cod应该被视为一个键。是吗?

" s1"左手代表,又一把钥匙?

2 个答案:

答案 0 :(得分:2)

它将$ valid {$ cod}引用的hashref中的元素数存储到LHS中。

"valid" should be treated as a hashref,

不,“有效”是%有效散列的名称,$ valid {}访问散列中的一个值。

$ cod是两个地方的哈希键。 “s1”也是一个哈希键。

答案 1 :(得分:2)

RHS

获取%valid索引的$cod的值。

$valid{$cod}

将该值视为hashref。

%{$valid{$cod}}

获取该hashref的键列表。

keys %{$valid{$cod}}

找出该列表中有多少个键。

scalar keys %{$valid{$cod}}

(这不是它的实际工作方式,而是在标量上下文中调用keys返回一个数字,表示它在列表上下文中返回的元素数量。)


LHS

哈希%logline$cod索引。

$logline{$cod}

它本身就是一个hashref,由s1索引。

$logline{$cod}{s1}

将所有这些结合在一起

第一个段的值存储在第二个

指示的位置
$logline{$cod}{s1} = scalar keys %{$valid{$cod}};