使用散列和数组的组合的Perl表达式
我很难理解一段代码.声明是:
push(@{$errorfile{$var}},$filepath); 我相信push用于将值附加到数组的末尾.但上面的表达让我很困惑.有一个哈希值,并且使用了@符号(通常与数组名称一起使用).在代码的开头,“errorfile”声明为: my %errorfile; 有人可以帮帮我吗? 解决方法
%errorfile是一个哈希值.
$errorfile {$var}是散列中的(标量)值,对应于键$var.该值恰好是数组引用. @ {$errorfile {$var}}是引用所引用的数组. 示例初始化:我的%errorfile =(foo => [12,34],bar => [56]);.在$var =“bar”之后; $filepath =“my / file.txt”; push(@ {$errorfile {$var}},$filepath); %errorfile变为(foo => [12,bar => [56,“my / file.txt”]). 在David W.发布的Perl References链接中查看更多详细信息. 一些亮点: > $标量变量包含标量值,可以是undef,整数,浮点数,字符串或引用. 因此,将数组放入散列的唯一方法是将数组引用放入散列中的值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |