- 论坛徽章:
- 1
|
本帖最后由 seufy88 于 2011-08-18 09:00 编辑
"use引入模块的同时,也引入了模块的子模块。而require则不能引入"这句话是什么意思,什么是模块的子模块?
昨天正好请教zhlong8,然后整理了一下午。我说说我的看法吧:
use module qw
等价于:
BEGIN{
require module;
package->import();
}
一般来说,模块A.pm中会有package A,所以会导入package A中的包变量,但是如果A.pm中没有package A,只有package B,package C,那么不会import任何包变量,即使你用的是use A;
而 require 后面跟的应该是module,也就是.pm文件,它的作用好像是创建.pm下所有package的符号表
有不对的地方还请各位指摘,谢谢
----------------
假设A.pm内容如下:
package B;
.....
@EXPORT=qw/$B/;
....
package C;
......
@EXPORT=qw/$C/;
......
用户程序:
#!/usr/bin/perl
use A;
.....
------------------
这样一来,main::中也不会有$B,$Cimport进来的。但是如果把A.pm改成B.pm,再use B.pm,就立马有$B import进来了,但$C还是import不进来。
小弟刚理解,不知道对不对。
##################################### |
|