【Perl】ヒアドキュメント中に関数実行

【Perl】ヒアドキュメント中に関数実行

Perlコーディングの際、ヒアドキュメントの中で関数を実行し、結果を表示させる方法。忘れないためのメモです。

ヒアドキュメント

ヒアドキュメントは複数行の文字を表示するのにとても便利です。

my $title = "タイトル";
print << "END_OF_HTML";
<html>
<head>
  <title>$title</title>
</head>
<body>
  <h1>$title</h1>
</body>
</html>
END_OF_HTML

END_OF_HTMLからEND_OF_HTMLまでの間を標準出力へprintできます。"END_OF_HTML"のようにダブルクォーテーションで括っているので変数($title)は展開されて「タイトル」の文字が表示されます。

@{[ 関数名 ]}

ヒアドキュメント中で無ければ下記のようにprint文の中で関数を実行して結果を表示させるのは簡単です。

print "<title>" . myfunc() . "</title>\n";

ヒアドキュメントの中では@{[ myfunc() ]}のように書けば実行することが出来ます。

print << "END_OF_HTML";
<html>
<head>
  <title>@{[ myfunc() ]}</title>
</head>
<body>
  <h1>@{[ myfunc() ]}</h1>
</body>
</html>
END_OF_HTML

${ 変数名 }

上記の@{[ 関数名 ]}と似た記法で${ 変数名 }という書き方があります。変数名の切れ目が分かりにくいときに使います。

print "$title_A\n"; # -> $title_Aという変数を展開しようとする
print "${title}_A\n"; # -> $titleという変数に"_A"という文字が追加されて表示される

Anja-#pray for ukraine# #helping hands# stop the warによるPixabayからの画像を使用しています。

お読みくださりありがとうございます。この記事が何かの参考になりましたら、ブログランキングサイトのバナークリックをよろしくお願いします。

ブログランキング・にほんブログ村へ 人気ブログランキング FC2 ブログランキング