4

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が、インストールされているコンパイラに依存したくありません。任意の提案をいただければ幸いです。

4

1 に答える 1

12

Perl6 を使用している場合は、「perl6::Form」を使用する必要があります

perl6::フォームが存在しません。

Perl6::Formは、Perl6 と同様の機能を提供する Perl5 モジュールですform

Perl6 モジュールは、言語の一部であるため、Perl6::Form を実行できたとしても、Perl6::Form を使用しません。

しかし、Perl5 で実行するときに Perl6 コードを「分離」する方法がわかりません。

Perl6 は Perl5 のバージョンではありません。Perl5 と Perl6 は完全に異なる言語です。(Perl5 の最新バージョンは現在 18.1 です) プログラムを両方で実行できると考える方法がわかりません。

Perl5 プログラムと Perl6 プログラムを分離する最善の方法は、それらを別々のファイルに入れることです。それらを同じファイルに配置する必要がある場合は、適切な解決策を見つける手助けをする必要があることを述べる必要があります。

于 2013-08-14T15:15:38.073 に答える