1. use vs require
1.1 两者都从@INC目录找指定文件
但跟require不同的是,use只能用于模块的包含,也就是.pm文件。 而Require可导入pl文件。
1.2 use语句是编译时引入的,require是运行时引入的,因此推荐用use,用use能在编译时就发现问题,用use是未来的趋势。
1.3 use引入模块的同时,也引入了模块的子模块。而require则不能引入,要在重新声明。即:
use ModuleName; 语句大致相当于 require ModuleName; import ModuleName::(@EXPORT); 当前包的命名空间都会被ModuleName中的@EXPORT中的函数和变量“玷污”。
如果要use 语句不会“玷污”当前的包命名空间,直接用 use ModuleName () #一个空括号
2. 模块编程举例,圆周计算模块
CirclePerimeterCalc.pm 内容如下:
ModuleTest.pl 内容如下:
执行情况如下: