相关疑难解决方法(0)

如果文件是必需的,Perl 6应该运行MAIN吗?

这是一个简短的Perl 6程序,它声明了一个MAIN子程序.如果我直接执行程序,我应该只看到输出:

$ cat main.pm6
sub MAIN { say "Called as a program!" }
Run Code Online (Sandbox Code Playgroud)

当我直接执行程序时,我看到输出:

$ perl6 main.pm6
Called as a program!
Run Code Online (Sandbox Code Playgroud)

如果我将其作为模块加载,我看不到输出:

$ perl6 -I. -Mmain -e "say 'Hey'"
Hey
Run Code Online (Sandbox Code Playgroud)

如果我use在程序内部相同,我看不到输出:

$ perl6 -I. -e 'use main'
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用require,我得到输出:

$ perl6 -I. -e 'require <main.pm6>'
Called as a program!
Run Code Online (Sandbox Code Playgroud)

概要06字面上说,编译单元是直接调用而不是被要求.是否有其他事情发生,因为require在运行时工作(虽然S06不排除它)?

我对Rakudo Star 2016.07和2016.10也有同样的行为.

perl6 modulino

6
推荐指数
1
解决办法
154
查看次数

标签 统计

modulino ×1

perl6 ×1