我创建了一个简单的测试模块 ./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()
,它可以正常工作。我在这里缺少什么?
答案 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";
}