如何用for …每个循环重置多个Perl哈希?

前端之家收集整理的这篇文章主要介绍了如何用for …每个循环重置多个Perl哈希?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在mod_perl脚本中重置一些全局哈希变量.

这有效 – 如上所述.这里:https://stackoverflow.com/a/4090870

$_ = '' for ($a,$b,$c);
$_ = 0 for ($d,$e,$f);

这似乎不起作用:

$_ = () for (%a,%b,%c);

为什么它不适用于哈希?可以吗?数组怎么样?

(我通常会尝试对变量进行范围调整,因此上面的内容不是必需的,但在这种情况下,我担心它必须是这样的.另外,我可能会遗漏一些基本的理解…每个循环如何工作Perl,请赐教.)

解决方法

你可以用引用来做到这一点:

%$_ = () for (\%a,\%b,\%c);

但这并没有回答你的问题,为什么没有引用它不起作用:

将哈希值放入for(%h)-statement时,哈希值会在列表上下文中隐式计算.

(编辑:我最初说的是标量上下文,后来实现了列表上下文并调整了答案)

猜你在找的Perl相关文章