现代 Perl 编程:特性、技巧与注意事项
函数原型的合理使用
函数原型的适度使用是合理的,例如在某些情况下可以去除 sub 内置函数的使用需求。另外,在定义用于 sort 的自定义函数时,声明该函数的原型为 ($$) ,Perl 会将参数传递到 $_ 中,而非包全局变量 $a 和 $b ,这虽然是少见的情况,但能节省调试时间。不过,函数原型的其他用途大多难以克服其缺点。
方法与函数的等价性
Perl 5 的对象系统设计得较为精简,它对存储在包中的函数和方法没有严格区分,都使用 sub 内置函数来表达。代码文档和将第一个参数视为 $self 的约定可以向读者暗示意图,但 Perl 本身会将在合适包中找到的具有合适名称的任何函数当作方法处理。
同时,也可以手动传入调用者,将方法当作函数调用,不过这两种方式都存在问题,应该避免。
调用方问题
假设存在一个 Order 类,包含 calculate_price 方法:
package Order;
use List::Util 'sum';
...
sub calculate_price
{
my $self = shift;
return sum( 0, $self->get
超级会员免费看
订阅专栏 解锁全文
912

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



