是否可以 - 在Perl中 - 访问当前包的名称(例如,在自定义错误报告中打印)?
答案 0 :(得分:33)
The special symbol __PACKAGE__ contains the current package,
but cannot (easily) be used to construct variable names.
答案 1 :(得分:10)
__PACKAGE__
将为您提供编译代码的包。
或者,您可能需要caller
。它获取调用当前子代码的代码包。
package Report;
sub gen_report {
my $report = "This report is generated for ".caller().".\n"; # MyModule
...
}
package MyModule;
Report::gen_report();