首先,我發現它有助於用花括號兼容在將多個包壓縮到一個文件時控制範圍。另外,將軟件包封裝在BEGIN塊中使其更適合於使用use
來加載它,但這主要是如果我將軟件包壓縮到主腳本中。
use Foo
與BEGIN { require Foo; Foo->import }
相同。
所以,你有兩個選擇:
- 通話
BEGIN{ Foo::Whizzy->import; }
在主腳本。
- 使
Foo::Bar::import
在調用模塊上觸發Foo::Whizzy::import
。
In Foo/Bar。PM:
{ package Foo::Bar;
use Exporter qw(export_to_level);
# Special custom import. Not needed if you call Foo::Whizzy->import
sub import {
shift;
export_to_level('Foo::Whizzy', 1, @_);
}
# stuff
# stuff
}
{ package Foo::Whizzy;
require Exporter;
our @ISA=qw(Exporter);
our @EXPORT=qw(x);
use constant { x=>1 };
}
1; # return true
在主代碼:
use Foo::Bar;
# If you don't do a custom import for Foo::Bar, add this line:
BEGIN { Foo::Whizzy->import };
THX所有 - 的共識似乎 - 使用2個文件 我只是懶惰 我保證說美孚不是foo – pm100 2009-11-10 00:21:48
在這種情況下,我會給予好評你! :) – Ether 2009-11-10 00:28:37