【发布时间】:2010-12-11 06:02:45
【问题描述】:
在 perl 5.8.5 中,如果我执行以下操作,我不会收到错误:
use strict;
my $a = undef;
foreach my $el (@$a) {
...whatever
}
这里发生了什么?打印出ref($a) 的输出表明$a 在某些时候变为有效的数组引用。但我从来没有明确地将$a 设置为任何东西。
变量的内容可以在我不做任何事情的情况下改变,这似乎有点奇怪。
有什么想法吗?
编辑:是的,我知道所有关于自动复活的知识。我一直认为在触发它的过程中必须有一个分配,而不仅仅是一个参考。
【问题讨论】:
-
这是 perl。奇怪很好,因为它很奇怪。
-
我觉得并不奇怪,只是为了方便保存一些声明。
-
@Stefano:为什么要检查 Perl 问题只是为了拖钓?这很乏味...
-
Telemachus:Python 程序员认为每种情况总是只有一种正确的方法。
-
@Alexandr:是的,我知道“应该有一种——最好只有一种——显而易见的方法”这一理念。但是处理有关 Perl
troll(post)的问题的唯一正确方法是什么?
标签: perl