下面是一個簡短的Perl 6程序,聲明MAIN子例程。我應該只看到輸出,如果我直接執行該程序:如果文件是必需的,Perl 6應該運行MAIN嗎?
$ cat main.pm6
sub MAIN { say "Called as a program!" }
而且我看到輸出,當我直接執行該程序:
$ perl6 main.pm6
Called as a program!
如果我加載它作爲一個模塊,我看不出有任何的輸出:
$ perl6 -I. -Mmain -e "say 'Hey'"
Hey
相同的,如果我use
它從程序中,我看不到輸出:
$ perl6 -I. -e 'use main'
但是,如果我用require
,我得到的輸出:
$ perl6 -I. -e 'require <main.pm6>'
Called as a program!
Synopsis 06字面意思編譯單元直接由被要求調用,而不是。有沒有其他的事情發生,因爲require
在運行時工作(雖然S06不排除)?
我和Rakudo Star 2016.07和2016.10的行爲一樣。
如果您省略文件擴展名,它是否有所作爲? – Christoph
我的確嘗試將此報告給[email protected],但郵件被永久性錯誤反彈。我向Perl NOC報告。 –
@Christoph:沒有要求的文件擴展名,它沒有找到該文件。 –