Я часто использую Data:: Dumper очень часто, и в итоге у меня есть следующий шаблон в верхней части каждого пакета в моем .pl-коде.
use strict;
use warnings;
use Data::Dumper;
$Data::Dumper::Deparse = 1;
$Data::Dumper::Purity = 1;
Есть ли способ указать, что "внутри текущего .pl файла я хочу, чтобы эти утверждения автоматически принимались".
например, я бы имел
package foo;
use strict;
use warnings;
use Data::Dumper;
$Data::Dumper::Deparse = 1;
$Data::Dumper::Purity = 1;
my @localState = (1, 2, 3, 4, 5);
sub test {
print Dumper \@localState;
}
package main;
use strict;
use warnings;
use Data::Dumper;
$Data::Dumper::Deparse = 1;
$Data::Dumper::Purity = 1;
foo->test;
это может быстро получить слишком много повторений шаблонов и снизить ремонтопригодность.
К сожалению, я не могу использовать функцию с "eval" в ней, чтобы вызвать весь этот шаблон, поскольку этот шаблонный план будет помещен в функцию, а не в глобальную область; Perl не имеет макросов Lisp, которые, как я знаю, имеют не-функциональное связанное с eval-бэйгером (я мог ошибаться, было бы так здорово, если бы у Perl были макросы Lisp).
Кто-нибудь знает, может ли быть достигнуто это поведение без написания синтаксического анализатора, чтобы вставлять инструкции для меня, если это первый пакет, объявленный внутри файла?