我傾向於經常使用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