确定Perl代码引用的子例程名称
发布时间:2020-12-15 21:19:48  所属栏目:大数据  来源:网络整理 
            导读:如何确定Perl代码引用的子例程名称?我也想区分命名和匿名子程序。 感谢this question我知道如何打印代码,但我仍然不知道如何得到这个名字。 例如,我想从以下内容获得“inigo_montoya”: #!/usr/bin/env perluse strict;use warnings;use Data::Dumper;$D
                
                
                
            | 
                         如何确定Perl代码引用的子例程名称?我也想区分命名和匿名子程序。 
  
  
感谢this question我知道如何打印代码,但我仍然不知道如何得到这个名字。 例如,我想从以下内容获得“inigo_montoya”: #!/usr/bin/env perl
use strict;
use warnings;
use Data::Dumper;
$Data::Dumper::Deparse = 1;
my $sub_ref = &;inigo_montoya;
print Dumper $sub_ref;
# === subroutines ===
sub inigo_montoya {
  print <<end_quote;
I will go up to the six-fingered man and say,"Hello. My name is Inigo
Montoya. You killed my father. Prepare to die."';
end_quote
}
解决方法
 为什么不问,编译器看到什么? (它将返回__ANON__在匿名subs上)。 
  
  
        #!/usr/bin/perl
use strict;
use warnings;
my $sub_ref = &;inigo_montoya;
use B qw(svref_2object);
my $cv = svref_2object ( $sub_ref );
my $gv = $cv->GV;
print "name: " . $gv->NAME . "n";
sub inigo_montoya {
    print "...n";
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
