use
现在,你已经知道迟钝的行为和包的语义,模块,类方法和BEGIN块。现在可以解释经常看到的use函数。
以下3个语句:
- use Caterpillar ("crawl", "pupate");
- use Caterpillar ();
- use Caterpillar;
跟下面是等价的:
- BEGIN {
- require Caterpillar;
- Caterpillar->import("crawl", "pupate");
- }
- BEGIN {
- require Caterpillar;
- }
- BEGIN {
- require Caterpillar;
- Caterpillar->import();
- }
·三个例子并不是顺序有误。这只是因为Perl沉默的
·use调用实际是BEGIN块的伪装。使用use语句同样要放在文件的头部,不要放在条件判断语句里面。
·import()并不是一个内置perl函数。它是一个用户定义的类方法。这个由程序员在Caterpillar包中定义或者继承import(),并且这个方法理论上接受任何淡出,并使用这些参数做任何操作。参阅Caterpillar.pm的文档看看实际会发生什么。
·注意require Caterpillar是如何载入一个名为Caterpillar.pm的模块,而Caterpillar->import()调用Caterpillar包中定义的import()子程序。希望模块和包是一致的。