1. 什么是闭包?《Perl高级编程》里面是这么说的:A closure is a code block that captures the environment where it's defined -- specifically, any lexical variables the block uses that were defined in an outer scope.
2. 闭包一定是匿名函数么?否。但是嵌套的命名函数如果引用了外层函数词法变量的话会引发一个will not stay shared警告。关键是匿名函数与命名函数一个重要的区别是,后者只会编译一次,而前者每次见到sub符号就会被编译一次。
3. 用闭包来做函数模板真是方便啊,想起了写ActionScript时候痛苦的写getter/setter funtions的痛苦时光……
4. 暂时想不出了,以后想到再补上,这会儿脑子已经处于半睡眠状态。