Next: , Previous: , Up: Perl   [Contents][Index]


15.5.18.8 長い行を理解するには

長いメッセージを必要とすることは、しばしば厄介で読みにくいコーディングスタイルを導き出します。Perlは読みにくいコードを記述するのを防ぐいくつかのオプションをもっており、xgettextもそれにたいしてベストを尽くします。これをおこなうにはドット演算子(文字列連結演算子)が手軽でしょう:

print gettext ("This is a very long"
               . " message that is still"
               . " readable, because"
               . " it is split into"
               . " multiple lines.\n");

Perlは、このような文字列定数の断片を、コンパイル時に1つの長い文字列に結合できるほどにはスマートであり、それはxgettextも同様です。あなたは処理結果のPOTには1つの長いメッセージしかないことを見出すでしょう。

将来のPerl 6では、ドット(‘.’)はdereferencing用となり、文字列の結合演算子として、おそらくアンダースコア(‘_’)が使われることに注意してください。xgettextでは、この新しい文法はまだサポートされていません。

改行を埋め込むのが問題ない(むしろ望んでいる)場合には、クォートされた文字列の内側のどこでも改行を挿入できます:

print gettext ("<em>In HTML output
embedded newlines are generally no
problem, since adjacent whitespace
is always rendered into a single
space character.</em>");

ヒアドキュメントの使用を考えるかもしれません:

print gettext <<EOF;
<em>In HTML output
embedded newlines are generally no
problem, since adjacent whitespace
is always rendered into a single
space character.</em>
EOF

行は実際に改行されることを忘れないでください(例: これらは改行文字に変換されて、POTファイル中に出現します)。