Perl 动态子程序与模块修改技巧
1. 动态子程序相关
1.1 迭代器实现
在 Perl 中,我们可以实现迭代器功能。例如, __more__ 方法返回 @links 数组中的元素数量, __next__ 方法返回 @links 数组的第一个元素。以下是示例代码:
{
package Netscape::Bookmarks::Category;
my @links = ();
sub __more__ { scalar @links }
sub __next__ { shift @links }
sub __init__
{
my $self = shift;
my @categories = ( $self );
while( my $category = shift @categories ) {
push @categories, $category->categories;
push @links, map { $_->href } $category->links;
}
print "There are " . @links . " links\n";
}
}
1.2 自动加载方法(Autoloaded Methods)
当 P
超级会员免费看
订阅专栏 解锁全文
245

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



