我倾向于经常使用Data :: Dumper,并且最终在我的.pl代码的每个包的顶部都有以下样板。Perl导入到我的所有包中?
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没有我知道的实际上具有非函数绑定eval-like bahavior的Lisp宏(我可能是错的,如果Perl有lisp宏,那将非常酷)。
有没有人知道如果这个行为可以实现而无需编写解析器来插入我的语句,如果它是在文件中声明的第一个包?
这是一个链接唯一的答案,因为我从我的手机写它。稍后将添加代码示例。 – simbabque
非常有帮助,因为它的立场:)我一直在思考如何避免在一个大型项目中跨越十几个+脚本的半打+相同导入。到目前为止,我没有发现任何运作良好的东西,将很乐意检查这一点! – zdim
噢......这个_actually works_ - 它可以让人想象,而且很简单。谢谢。它解决了一个非常大的项目中非常棘手的问题。 – zdim