Trước hết, tôi thấy hữu ích khi sử dụng kèm theo niềng răng để kiểm soát phạm vi khi nhồi nhét nhiều gói vào một tệp. Ngoài ra, kèm theo các gói trong một khối BEGIN làm cho nó hoạt động giống như một thích hợp use
được sử dụng để tải nó, nhưng điều này chủ yếu là nếu tôi nhồi nhét gói vào kịch bản chính.
use Foo
giống với BEGIN { require Foo; Foo->import }
.
Vì vậy, bạn có hai lựa chọn:
- gọi
BEGIN{ Foo::Whizzy->import; }
trong kịch bản chính của bạn.
- làm cho
Foo::Bar::import
kích hoạt Foo::Whizzy::import
trên mô-đun gọi điện.
Trong 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
Trong mã chính của bạn:
use Foo::Bar;
# If you don't do a custom import for Foo::Bar, add this line:
BEGIN { Foo::Whizzy->import };
thx cho tất cả - sự đồng thuận dường như - sử dụng 2 file Tôi chỉ là lười biếng và tôi hứa sẽ nói Foo không foo – pm100
Trong trường hợp đó, tôi sẽ upvote bạn! :) – Ether