我有一个需要在 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/

10-13 04:48