Next: Perl Pitfalls, Previous: Parentheses, Up: Perl [Contents][Index]
長いメッセージを必要とすることは、しばしば厄介で読みにくいコーディングスタイルを導き出します。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ファイル中に出現します)。