我有一个需要在Perl 5和Perl 6环境中运行的Perl脚本。如果使用Perl6我需要在Perl5上使用“perl6 :: Form”我需要使用“格式”。
此代码适用于两个版本或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
,但我不想依赖于正在安装的编译器。任何建议,将不胜感激。
答案 0 :(得分:12)
如果使用Perl6,我需要使用“perl6 :: Form”
perl6 ::表格不存在。
Perl6::Form是一个Perl5模块,提供类似于Perl6 form
的功能。
Perl6模块对Perl6 :: Form没有用,即使它可以运行它,因为它是语言的一部分。
但是我不知道如何在Perl5上运行时“分离”Perl6代码。
Perl6不是Perl5的版本。 Perl5和Perl6是完全不同的语言。 (Perl5的最新版本目前是18.1)我看不出你怎么认为你可以让两者都执行一个程序。
分离Perl5程序和Perl6程序的最佳方法是将它们放在不同的文件中。如果您需要将它们放在同一个文件中,您需要说明我们需要帮助您找到合适的解决方案。