ヒアドキュメント - 複数行の文字列を簡単に作成
ヒアドキュメントを用いれば複数の文字列をわかりやすく記述することができます。
my $text = <<'EOS'; aaaa iiii uuuu EOS
ヒアドキュメントを用いれば、<<'EOS' と EOS にはさまれた行にある文字列を、改行を維持して文字列に代入することができます。
セミコロンの位置に注意しましょう。最後のEOSのあとには、セミコロンはなくて、 最初の行の最後にセミコロンがあります。
EOSという部分は任意の文字列で構いません。このサンプルでは「End Of String」という意味でEOSを使っています。
ヒアドキュメントの中で変数展開する
<<'EOS' を <<"EOS" に変更すれば、ヒアドキュメントの中で、変数展開が可能になります。my $message = 'Hello'; # 変数展開可能なヒアドキュメント my $text = <<"EOS"; aaaa $message iiii uuuu EOS
次のようにダブルクォートを省略しても変数展開がされるヒアドキュメントになりますが、明示的に意味がわかるように、ダブルクォートで囲むのがお勧めです。
my $text = <<EOS; aaaa $message iiii uuuu EOS
サンプルプログラム
ヒアドキュメントのサンプルです。
use strict; use warnings; # ヒアドキュメント print "1: ヒアドキュメントを使用する。( 変数展開なし )\n"; my $text_no_expand = <<'EOS'; aaaa iiii uuuu EOS print "$text_no_expand\n"; print "2: ヒアドキュメントを使用する。( 変数展開あり )\n"; my $str = "eeee"; my $text_expand = <<"EOS"; $str oooo EOS print "$text_expand\n";