use

现在,你已经知道迟钝的行为和包的语义,模块,类方法和BEGIN块。现在可以解释经常看到的use函数。

以下3个语句:

  1. use Caterpillar ("crawl", "pupate");  
  2. use Caterpillar ();  
  3. use Caterpillar; 

跟下面是等价的:

  1. BEGIN {  
  2.     require Caterpillar;  
  3.     Caterpillar->import("crawl", "pupate");  
  4. }  
  5. BEGIN {  
  6.     require Caterpillar;  
  7. }  
  8. BEGIN {  
  9.     require Caterpillar;  
  10.     Caterpillar->import();  

·三个例子并不是顺序有误。这只是因为Perl沉默的

·use调用实际是BEGIN块的伪装。使用use语句同样要放在文件的头部,不要放在条件判断语句里面。

·import()并不是一个内置perl函数。它是一个用户定义的类方法。这个由程序员在Caterpillar包中定义或者继承import(),并且这个方法理论上接受任何淡出,并使用这些参数做任何操作。参阅Caterpillar.pm的文档看看实际会发生什么。

·注意require Caterpillar是如何载入一个名为Caterpillar.pm的模块,而Caterpillar->import()调用Caterpillar包中定义的import()子程序。希望模块和包是一致的。