使Perl脚本同时在Perl 5和6中工作

问题描述 投票:4回答:1

我有一个Perl脚本,它需要同时在Perl 5和Perl 6环境中运行。如果使用Perl6,我需要使用“ perl6 :: Form”,而在Perl5上,我需要使用“格式”。

此代码可同时在两个版本或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,但是我不想依赖于要安装的编译器。任何建议,将不胜感激。

forms perl portability perl6 raku
1个回答
12
投票

如果使用Perl6,我需要使用“ perl6 :: Form”

perl6 :: Form不存在。

[Perl6::Form是一个Perl5模块,提供的功能类似于Perl6的form

由于Perl6 :: Form是语言的一部分,因此即使可以运行它,它也不会用于Perl6 :: Form。

但是我不知道在Perl5上运行时如何“分离” Perl6代码。

Perl6不是Perl5的版本。 Perl5和Perl6是完全不同的语言。 (Perl5的最新版本当前为18.1)。我看不出您怎么能认为自己可以同时执行一个程序。

分隔Perl5程序和Perl6程序的最佳方法是将它们放在不同的文件中。如果需要将它们放在同一文件中,则需要说明我们需要帮助您找到合适的解决方案的地方。

© www.soinside.com 2019 - 2024. All rights reserved.