2

Perlのサブルーチンで自由形式のテキストを印刷しようとすると、非常に奇妙なエラーが発生します。以下は私が呼んでいるコードです

    print OUTFILE <<"HEADER";
The freeform text would go here
HEADER

奇妙なことに、これは私の関数のメインでのみ機能します。関数呼び出しに入れるとすぐに、次のエラーが発生します。

Can't find string terminator "HEADER" anywhere before EOF

つまり、HEADERはありますが、見つかりません。関数(サブルーチン)内で自由形式のテキストを使用できませんか?

4

1 に答える 1

1

文字列識別子を終了する前に、スペース/タブ/インデントがないことを確認してください。つまり、ですHEADER。コードは次のようになります。

        function someFunc(){
          print OUTFILE <<"HEADER";
      The freeform text would go here
HEADER
        }

その前にスペース/タブ/インデントがないことに注意してくださいHEADER。行の最初の文字から開始する必要があります。

詳細については、このチュートリアルを確認してください。

引用:

覚えておくべき重要なルールは、開始したのと同じ単語を使用してヒアドキュメントを終了することです。

于 2010-11-14T21:06:25.013 に答える