Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発ならPerl
  1. Perl
  2. 演算子
  3. here

ヒアドキュメント - 複数行の文字列を簡単に作成

ヒアドキュメントを用いれば複数の文字列をわかりやすく記述することができます。

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";