(假设使用严格;使用警告;)
我明白使用file :: Find;加载模块的所有子程序.
我明白使用file :: Find qw(find);只加载模块的find子程序(虽然我可以通过file :: Find :: finddepth使用其他子程序).
那么file :: Find();做?具体来说,为什么空的parens?
解决方法 tl; dr:它表示不导出任何内容而不是默认值.长版:
file :: Find有我们的@EXPORT = qw(find finddepth);,因此默认情况下会导出这些子.如果我们只是使用模块,然后尝试调用find it errors,因为我没有传递正确的参数来查找但是find确实存在.
quentin@workstation:~ # perluse file::Find;find();no &wanted subroutine given at /Users/davID/perl5/perlbrew/perls/perl-5.16.1/lib/5.16.1/file/Find.pm line 1064.
在use语句中传递列表会覆盖默认值并仅导出您要求的subs.空列表表示不会导出任何内容,因为查找不存在,所以会出错.这样:
quentin@workstation:~ # perluse file::Find ();find();Undefined subroutine &main::find called at - line 2.总结
以上是内存溢出为你收集整理的使用带有空括号的Perl模块全部内容,希望文章能够帮你解决使用带有空括号的Perl模块所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)