免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 9834 | 回复: 4
打印 上一主题 下一主题

use module中qw是什么意思? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-17 15:33 |只看该作者 |倒序浏览
看人家代码

use LVMSVMParser qw(IsScanPatternBySrcFile ShapeAndAnalysisVector);

请问qw是什么意思?
如何使用?

谢谢

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2006-02-17 16:43 |只看该作者
qw就是引用的意思..把里面所写的那些subroutine当成是自己写的..
你可以直接使用IsScanPatternBySrcFile(xx);
不然要用
LVMSVMParser::IsScanPatternBySrcFile();使用..

论坛徽章:
0
3 [报告]
发表于 2006-02-17 18:09 |只看该作者

明白:)

不过我看书上好像也这么说qw意思是quote words是用来定义数组还是单词的?具体用法也忘记了
不知道有没有这种用法,还请apile大哥祥解

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2006-02-18 08:30 |只看该作者
qw的意思就是你说的没错...他会回传一个array...另外注意LZ前面说的是用在
use XXXX qw();
这是使用use subroutine...第一个argument是Module名称..第二个就是你想要直接调用的method...
在Module的设计中...你可以给default会export出去给别人用的method...这时候..引用的人就不需要给
qw()..而可以直接调用..例如:
use LWP::Simple;
写完这个就可以直接调用get method...
但是有些自己写的module..可能没有写default的...所以就需要qw()来把他export出来给当前的
程序用.....qw不限定一定是subroutine,也可以是variable.....
他会自动在每个element加上适当的"".....
大概是这个意思..很久以前看到的..perldoc里面有很详细的说明...
我写的可能不大对...

论坛徽章:
0
5 [报告]
发表于 2006-02-18 11:08 |只看该作者
能import进什么,取决于目标模块如何export的动作。
例如,在模块Mymodule.pm里面:
       @EXPORT    = qw(afunc $scalar @array);   # afunc is a function
           @EXPORT_OK = qw(&bfunc %hash *typeglob); # explicit prefix on &bfunc
前者表示export出默认的符号表,包括一个函数,一个标量,和一个数组;
后者表示显式export出符号表,同样包括函数,hash和typeglob。
这样在main script里,
use Mymodule; import进该模块默认输出的符号;
use Mymodule (); 不import进任何来自该包的符号,与require Mymodule;一样;
use Mymodule qw/bfunc/; import进该包显式export出的bfunc函数。

更多信息,请见perldoc Exporter。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP