Perl编程进阶:特性、模块与未来方向
1. 原型的实用用途
Ben Tilly提出了原型的一个实用用途:定义自定义命名函数用于排序。示例代码如下:
sub length_sort ($$) {
my ($left, $right) = @_;
return length($left) <=> length($right);
}
my @sorted = sort length_sort @unsorted;
这里的 $$ 原型会强制Perl将排序对传递到 @_ 中。虽然 sort 文档指出,这比使用包全局变量 $a 和 $b 稍慢,但使用词法变量通常能弥补速度上的损失。
2. 方法与函数的等价性
2.1 Perl对象系统特点
Perl的对象系统设计得较为精简。类就是包,Perl不会区分存储在包中的函数和方法,都使用 sub 来声明。可以将函数作为方法调用,也可以手动传入调用者,像调用函数一样调用方法。
2.2 调用方问题
考虑一个包含多个方法的类 Order :
package Order {
use List::Util 'sum';
sub calculate_p
超级会员免费看
订阅专栏 解锁全文
468

被折叠的 条评论
为什么被折叠?



