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

Perlプログラミングちゃんねるのご紹介

Perlの書籍
  • 業務に役立つPerl

    ログ解析など日本語を含むテキスト処理の実践!
    この私、Perlゼミの作者が執筆しています。
    ご購入、口コミ歓迎。
  • Perlの書籍 »
自己紹介
木本裕紀

「今日も元気だ! Perlで元気!」

Perlプログラミングちゃんねる

Youtubeチャンネル登録、いいね、コメント歓迎

Twitter
フォロー、いいね、リツート、コメント歓迎

kimoto.yuki@gmail.com
応援メッセージ、質問、間違い報告歓迎

Perl総合研究所