打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
perl 子例程引用与闭包(对所写函数的引用和调用)

1、对有名子例程的引用

sub great()

{

          print "hello\n";

}

my $rs = \&great;

重要一点我们并没有调用子例程great,这和创建对标量变量的引用时一样,也没有计算标量变量的值。于下面做对比:

my $rs = \&great();

也等价于:

sub great()

{

          print "hello\n";

}

print &$rs;

 

2、对匿名子例程的引用

 

3、对子例程引用的间接访问

Perl并不关心$rs指向的有名还是无名的子例程,间接访问操作对两种情况都适应

use strict;

use warnings;

sub great()

{

          my ($a, $b)= @_;

          print $a,"\n";

          print $b,"\n";

}

my $rs = \&great;

print&$rs(12,21);            #使用引用对函数的调用方式1

print $rs ->(23,32);          #使用引用对函数的调用方式2

如果中间的调用同样返回对子例程的引用的话,子例程调用可以链接起来。

use strict;

use warnings;

my $rs = \&test1;

$rs -> ("Batman") ->("Robin");

sub test1()

{

          my $arg =shift;

          print$arg;

          return\&test2;

}

sub test2()

{

          my $arg =shift;

          print " and$arg\n";

}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
快速入门 | 篇十一: 正运动技术运动控制器中断的应用​
Perl 子程序(函数) | 菜鸟教程
VFB综合例题:sqlite数据库
perl代码:eval+代码的动态生成
(转载)substr: perl提取字符串
父类的私有方法不能被子类覆盖
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服