Perlの哲学 - Perlに対する誤解を解く

Perlの変数展開はシェルスクリプトの変数展開と同じ

Perlには変数展開と呼ばれる機能がありますが、これはシェルスクリプトの変数展開と同じ機能です。シェルスクリプトといのは、shを初めとしてbash、csh、ksh、zshなど、shから発展したものを含み、Unix/LinuxのCUI環境でコマンドを記述するための言語のことです。

Perlの変数展開

Perlの変数展開です。

my $food = "apple";
my $message = "I like $foo";

シェルスクリプトの変数展開

シェルスクリプトの変数展開です。シェルの慣習に従って変数名は、大文字にしてあります。

FOOD=apple
MESSAGE="I like $FOOD"

Perlの変数展開とシェルスクリプトの変数展開の比較

「$」を使って、変数展開しているという部分がシェルスクリプトと同じですね。また、ダブルクォートで囲むことによって、変数展開しているところも同じです。

Unix/Linux環境におけるシェルスクリプトの変数展開の文法を、Perlはそのまま提供しています。

Perlの場合は、変数自体が「$」を持つというところが、シェルスクリプトと少し異なるところです。

Perlはシェルの機能を参考にしている

Perlは、もともとは、Unix環境で、テキスト処理を簡単に書けるように生まれた言語です。Perlは、Unix環境で、シェルを書いていたユーザーが、使いやすい用に配慮されています。

シェルの環境で使っていた変数展開の機能がPerlで、同じ文法で使えるのは、そのためです。シェルスクリプトで覚えた変数展開の知識を、Perlでそのまま活用することができます。

もしあなたが学生であれば、大学1年生のUnix/Linuxサーバーを学ぶ授業で、シェルについて学ぶと思います。そこで覚えた知識に少し足せば、Perlの文法を簡単に覚えることができるので、Perlの学習コストは低くなっています。

シェルスクリプトの文法を過剰に批判するという人も中にはいますが、Perlは、シェルスクリプトとの親和性・協調性に焦点を合わせています。

単純にいくつかのコマンドを実行したい場合は、シェルスクリプトが簡単です。複数行のテキスト処理をしたい場合は、Perlが簡単です。