加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

使用带有空括号的Perl模块

发布时间:2020-12-15 23:23:58 所属栏目:大数据 来源:网络整理
导读:我正在尝试学习Perl并了解有关使用和模块的内容. (假设使用严格;使用警告;) 我明白使用File :: Find;加载模块的所有子程序. 我明白使用File :: Find qw(find);只加载模块的find子程序(虽然我可以通过File :: Find :: finddepth使用其他子程序). 那么File ::
我正在尝试学习Perl并了解有关使用和模块的内容.

(假设使用严格;使用警告;)

我明白使用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:~ # perl
use 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:~ # perl
use File::Find ();
find();

Undefined subroutine &main::find called at - line 2.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读