【发布时间】:2012-04-17 13:29:50
【问题描述】:
我写 Perl 已经有一段时间了,一直在发现新事物,我只是遇到了一些有趣的东西,我没有解释,也没有在网上找到它。
sub a {
sub b {
print "In B\n";
}
}
b();
为什么我可以从其范围之外调用b() 并且它可以工作?
我知道这样做是一种不好的做法,但我不这样做,我在这些情况下使用封闭等,但只是看到了。
【问题讨论】:
-
您只能使用 OOP 强制执行这种类型的作用域
-
闭包之类的东西会帮助你;)它与你所问的不一样,而是另一个很好的子例程实现。
-
Perl v5.20 有lexical named subroutines
标签: perl scope nested subroutine