1. BEGIN {
    2. require Caterpillar;
    3. Caterpillar->import("crawl", "pupate");
    4. }
    5. }
    6. BEGIN {
    7. require Caterpillar;
    8. }
    • 不,这三个例子并没有放错顺序,只是Perl比较笨罢了。
    • use只是BEGIN块的伪装,同样的警告对此也适用。use 语句必须总是放在文件开头,并且永远不要放在条件分支里
    • 并不是Perl的内置函数,它只是一个用户自定义的类方法。定义或者继承import()函数的重任就落在写Caterpillar这个包的程序员身上了。这个方法理论上可以接受任何东西作为参数,也可以对参数做任何操作。use Caterpillar;可以做任何事情,你需要查询Caterpillar.pm的文档来判断到底会发生什么。