Подтвердить что ты не робот

Perl, как распечатать имя пакета?

Возможно ли в Perl - получить доступ к имени текущего пакета (например, распечатать его в индивидуальном отчете об ошибке)?

4b9b3361

Ответ 1

Из perldoc perlmod:

The special symbol __PACKAGE__ contains the current package,
but cannot (easily) be used to construct variable names.

Ответ 2

__PACKAGE__ предоставит вам пакет, в котором был скомпилирован код.

В качестве альтернативы вам может понадобиться caller. Он получает пакет кода, который называется текущим.

package Report;

sub gen_report {
   my $report = "This report is generated for ".caller().".\n";  # MyModule
   ...
}

package MyModule;

Report::gen_report();