Perl内置函数作为子例程引用

Perl内置函数作为子例程引用,第1张

概述我正在尝试将一组 *** 作作为数组执行.为此,我必须传递子例程引用. (可能还有其他方法可以在不使用数组的情况下执行此 *** 作.但是,由于某些其他限制,我觉得这是最好的. 我正在尝试做的基本示例代码: #!/usr/bin/perluse strict;use warnings;use Data::Dumper;sub test(){ print "Tested\n";}my $te 我正在尝试将一组 *** 作作为数组执行.为此,我必须传递子例程引用. (可能还有其他方法可以在不使用数组的情况下执行此 *** 作.但是,由于某些其他限制,我觉得这是最好的.

我正在尝试做的基本示例代码:

#!/usr/bin/perluse strict;use warnings;use Data::Dumper;sub test(){   print "Tested\n";}my $test;my  @temp = (1,2,3);my $operations = [            [\&test,undef,undef],[\&shift,$test,\@temp],];foreach(@$operations){   my $func = shift $_;   my $out = shift $_;   $$out = $func->(@$_);}print Dumper $test;

观察到的输出是:

TestedUndefined subroutine &main::shift called at temp2.pl line 22.

查询 – 是否可以将内置子例程作为引用传递?

已有早期查询,在here中作为子例程引用的函数内置reg.

由于问题被问了大约3年,所以想知道现在是否有任何替代方案.
如果有人解释为什么在这种情况下内置函数和用户定义的子例程之间存在区别,我将不胜感激?

解决方法 转变不是一个分;它就像一个 *** 作符和.如果要引用sub,则需要创建sub.

[sub { shift(@{$_[0]}) },
总结

以上是内存溢出为你收集整理的Perl内置函数作为子例程引用全部内容,希望文章能够帮你解决Perl内置函数作为子例程引用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1213185.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存