我在perl的关闭和$1
regexp变量中发现了一个可能的错误。简而言之,他们不会混在一起。perl关闭和正则表达式变量
让我们来看看这段代码。
use warnings;
while ("1234567890"=~/(.)/sg) {
push @subs, sub{print $1;};
}
for (@subs) {$_->()}
你可以想象现在的perl将打印所有号码 - 相反,我得到了10个警告从不确定$1
。
这真的是一个错误,或者我错过了perl文档中的某些东西吗?是否有一些原因,为什么$1
是未定义的并且不是关闭的一部分?
哦,是的,这是有道理的:)但我认为你彪打印$ X。 – 2011-01-27 02:57:44
谢谢,修复它(: – 2011-01-27 02:59:03