Perl 引用<2>
发布时间:2020-12-15 23:50:09 所属栏目:大数据 来源:网络整理
导读:返回子程序引用的子程序:对返回的子程序进行closure处理。Closure即如果你定义了一个函数,它就以最初定义的内容运行。sub generate_greeting { my($greeting) = "hello world"; return sub {print $greeting}; } $rs = generate_greeting(); $rs(); 函数中
返回子程序引用的子程序:对返回的子程序进行closure处理。Closure即如果你定义了一个函数,它就以最初定义的内容运行。 sub generate_greeting { my($greeting) = "hello world"; return sub {print $greeting}; } $rs = generate_greeting(); &$rs(); 函数中的局部变量$greeting在函数执行结束后($rs = generate_greeting()),仍然存在(&$rs())。 同变量的引用,返回函数的引用,仍引用变量,引用计数不为0. [oracle@jhoa 2]$ cat a4.pl sub generate_greet { my ($greeting) = "Hello world"; return sub {print "$greetingn"}; } $rs = &generate_greet; print "$rs is $rsn"; ##函数引用 &;$rs(); [oracle@jhoa 2]$ perl a4.pl $rs is CODE(0x1fdf42a0) Hello world [oracle@jhoa 2]$ cat a5.pl sub generate_greeting { my($greeting) = @_; return sub {my($subject)= @_;print "$greeting $subject n"; }; } $rs1 = generate_greeting("hello"); &$rs1 ("world") ; [oracle@jhoa 2]$ perl a5.pl hello world 引用用创建,用类型符号+$a访问,访问引用,用$$a,@$a,&$a()。匿名结构返回的是引用。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |