変数展開
Perlには文字列の中で変数を利用することができる変数展開という機能があります。文字列はダブルクォートで囲う必要があります。
my $str2 = "AAA $str1 CCC";
文字列の中で直接変数を利用することができるので、文字列連結演算子を使って書くよりも簡単です。積極的に使っていきましょう。
変数展開のサンプルを書いてみます。
my $animal = 'cat'; my $message = "I like $animal";
「$animal」が変数展開されて「$message」は「I like cat」になります。
変数展開の後ろに文字列が続く場合
変数展開をするときに、変数の後ろに文字列が続く場合に、その文字列も変数名の一部だと認識されてしまいます。このような場合は$の後ろで「{}」を使って、変数名を囲みましょう。
my $animal = 'cat'; my $message = "dog${animal}mouse";
正しく「dogcatmouse」と展開されます。
配列の変数展開
配列も変数展開することができます。配列が変数展開された場合は、要素が空白で連結されます。
my @animals = ('dog', 'cat', 'mouse'); my $message = "I like @animals";
「$message」は「I like dog cat mouse」に展開されます。
サブルーチンの変数展開
サブルーチンは変数ではないので、変数展開することができません。変数に代入してから、変数展開の機能を使うとスマートです。
my $total = sum(1, 2); my $message = "Number is $total";
ヒアドキュメントの中での変数展開
ヒアドキュメントの中でも、変数展開を使うことができます。終端文字列をダブルクォートで囲んでおくと変数展開を行う意図がわかりやすくなります。
my $animal = 'cat'; my $message = <<"EOS"; I love you. I like $animal. EOS