Perl 回调函数和闭包

在计算机程序设计中,回调函数,或简称回调(Callback),是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。

就是向函数的参数为   一个函数的引用

[oracle@jhoa 3]$ cat a1.pl 
$cd = sub {print "hello world"};
print "$cd id $cd
";
sub test {
print &$cd."
";
}
test;


[oracle@jhoa 3]$ perl a1.pl 
$cd id CODE(0xf167d90)
hello world1


闭包:

闭包 (closure):具有持续参照位于该函数范围之外的文字式变数值的能力。这些外部的文字变数会神奇地保留它们在闭包函数最初定义时的值.


sub test{
my $a="xxx";
 $b=$a;
print "1---$a
";
}
test;
print "2----$a
";
print "3----$b
";
print "4----$$b
";


D:探索perl的世界讲义及示例11-18ch16>perl 1.pl
1---xxx
2----
3----SCALAR(0x1e7074)
4----xxx

原文地址:https://www.cnblogs.com/hzcya1995/p/13351928.html