Perl,如何打印包名?

时间:2011-08-10 13:43:12

标签: perl package

是否可以 - 在Perl中 - 访问当前包的名称(例如,在自定义错误报告中打印)?

2 个答案:

答案 0 :(得分:33)

来自perldoc perlmod

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();