【发布时间】:2013-08-14 14:48:39
【问题描述】:
我有一个需要在 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](search.cpan.org/perldoc Perl6::Form) 是一个 Perl5 模块......到目前为止我基本上忽略了 Perl6......所以我可能遗漏了一些东西......你从哪里得到可以将 Perl5 和 Perl6 代码组合在同一个源中的想法?我很好奇。 -
AFAIK、Perl5 和 Perl6 是完全不同的语言。你能告诉我你是从哪里想到可以将它们结合在同一个源文件中的吗?
-
嗯,我来自 C 背景,我们使用预处理器命令使我们的代码在许多平台上可移植。我希望我可以用 perl 做到这一点。听起来那是不可能的。
-
好的,C 背景示例:您上次在同一个源文件中混合 C 和 Java 是什么时候?
-
再一次,没有 perl6::Form 这样的东西
标签: forms perl portability raku