我有一个需要在 Perl 5 和 Perl 6 环境中运行的 Perl 脚本。如果使用 Perl6,我需要使用“perl6::Form”,而在 Perl5 上我需要使用“Format”。
此代码适用于两个版本或 perl 没有错误:
BEGIN {
if( $] ge 6){
require Perl6::Form;
Perl6::Form::->import();
}
}
但是我不知道在 Perl5 上运行时如何“分离”Perl6 代码。
if( $] ge 6){ # Perl6
print form
...
...
} else { # perl5
format STDOUT =
...
...
}
这不能正常工作,因为我在 Perl5 上遇到错误:
Unquoted string "form" may clash with future reserved word at /usr/bin/script.pl line 628.
Name "main::form" used only once: possible typo at /usr/bin/script.pl line 641.
我简要地查看了
Text::CPP
,但我不想依赖正在安装的编译器。任何建议,将不胜感激。 最佳答案
perl6::Form 不存在。
Perl6::Form 是一个 Perl5 模块,它提供类似于 Perl6 的 form
的功能。
Perl6 模块对 Perl6::Form 没有用处,即使它可以运行它,因为它是语言的一部分。
Perl6 不是 Perl5 的一个版本。 Perl5 和 Perl6 是完全不同的语言。 (Perl5 的最新版本目前是 18.1)我不明白你怎么能认为你可以同时执行一个程序。
将 Perl5 程序和 Perl6 程序分开的最好方法是将它们放在不同的文件中。如果您需要将它们放在同一个文件中,您需要说明需要我们帮助您找到合适的解决方案。
关于forms - 使 Perl 脚本在 Perl 5 和 6 中都能工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18234971/