Perlの文字列リテラルはUnix/Linuxシェルのシングルクォートとダブルクォートと似たように機能する

Perlがシェルフレンドリーなひとつの理由として、Perlの文字列リテラルはUnix/Linuxシェルのシングルクォートとダブルクォートと似たように機能することがあげられます。

シングルクォート文字列

Perlのシングルクォート文字列は、変数展開を行いません。この動作は、Unix/Linuxシェルと同じです。

# 変数展開しない(hello $name)
my $message = 'hello $name';

ダブルクォート文字列

Perlのダブルクォート文字列は、変数展開を行います。この動作は、Unix/Linuxシェルと同じです。

# 変数展開する(hello kimoto)
my $name = 'kimoto';
my $hessage = "hello $name";

シェルのシングルクォートとダブルクォートと似たように動作するので、覚えておきやすいですね。

Perlとシェルの文字列リテラルの違いは?

Perlとbashとの違いはあります。それはバックスラッシュ「\」が、エスケープシーケンスとして解釈されることです。Perlの場合は、どのUnix/Linux環境であってもダブルクォートの中の「\n」で改行を表現できます。エスケープシーケンスについてはC言語との類似性をPerlの開発者は選んだようです。

関連情報