Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発ならPerl
  1. Perl
  2. 構文・文法
  3. here

変数展開

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
  • Perlとはテキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。
  • Linuxサーバーでのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意
  • Perlはgitopensslなど広く普及したUnix/Linuxミドルウェアの補助ツールとして採用実績あり。後方互換性とポータビリティの高さがひとつの理由と推測。
  • 大量のテキストを扱うWeb開発も得意。ロングテールSEOを意識したWebサイト、アドテクやソーシャルゲームでの50ms以内のJSONの生成など。