我正在嘗試在 Perl 中列印呼叫者函式。它的顯示符合預期。
下面是代碼:
#!/usr/bin/perl
use strict; use warnings;
my $a = 5;
my $b = fun1($a);
print "a:$a ** b:$b\n";
sub fun1 {
my $r = shift;
my $s = fun2($r);
return $s;
}
sub fun2 {
my $p = shift;
print "the calling function is:", (caller 1)[3], "\n";
print "and you're in:", (caller 0)[3], "\n";
my $q = $p * 5;
return $q;
}
輸出:
the calling function is:main::fun1
and you're in:main::fun2
a:5 ** b:25
我怎樣才能分別列印fun1和fun2而不是main::fun1和main::fun2。
如果有辦法根據我上面所說的列印它們,那很好。或者我將不得不修剪結果:(
uj5u.com熱心網友回復:
您可以使用以下內容:
my $name = $full_name =~ s/^.*:://sr;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/494024.html
標籤:perl
