使用完全限定名称调用模块子例程

时间:2017-11-09 08:08:21

标签: module perl6

我创建了一个简单的测试模块 ./mods/My/Module.pm6

unit module My::Module;
use v6;

sub hello () is export {
    say "Hello";
}

然后,我有一个测试脚本 ./p.p6

#! /usr/bin/env perl6

use v6;
use My::Module;

My::Module::hello();

然后我设置PERL6LIB以包含文件夹 ./mods ,然后运行脚本:

$ ./p.p6 
Could not find symbol '&hello'
  in block <unit> at ./p.p6 line 7

但是,如果我用My::Module::hello()替换脚本中的行hello(),它可以正常工作。我在这里缺少什么?

1 个答案:

答案 0 :(得分:5)

如果你导出你好,你可以简单地使用它

use v6;
use lib <lib>; # hint: no need to tinker with the environment
use My::Module;

hello();

如果您真的想要使用完全限定名称,则必须使用我们的关键字。

our sub hello () is export {
    say "Hello";
}