19、Perl编程进阶:特性、模块与未来方向

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值