我需要在 mod_perl 脚本中重置一些全局哈希变量。
这有效 - 如所描述的那样这里:https://stackoverflow.com/a/4090870
$_ = '' for ($a, $b, $c);
$_ = 0 for ($d, $e, $f);
这似乎不起作用:
$_ = () for (%a, %b, %c);
为什么它不适用于哈希?可以吗?数组呢?
(我通常会尝试限定变量的范围,所以上面的内容不是必需的,但在这种情况下,恐怕它必须是这样的。另外,我可能缺少对如何 for...each 的一些基本理解循环在 Perl 中工作,请赐教。)
最佳答案
你可以用引用来做:
%$_ = () for (\%a, \%b, \%c);
但这并没有回答您关于为什么没有引用它就不能工作的问题:
当将散列放入您的 for (%h)
语句时,散列在列表上下文中隐式计算。
(编辑:我最初说的是标量上下文,后来意识到它是列表上下文并调整了答案)
关于perl - 如何使用 for...each 循环重置多个 Perl 散列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16033479/