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

Perlがコンパイル作業なしすぐに実行できるのはシェルスクリプトと同じ

Perlが、コンパイル作業なしすぐに実行できるのはシェルスクリプト(sh,bash,csh,ksh,zsh)と同じです。スクリプト言語と呼ばれる言語のひとつの特徴は、コンパイル作業なしで、すぐに実行できるというのが上げらます。

プログラムを書く、すぐに実行というサイクルをとれるので、プログラム作成の生産効率が高いです。

Perlにおけるプログラムの実行

Perlにおけるプログラムの実行です。

perl script.pl

シェルスクリプトにおけるプログラムの実行

シェルスクリプトにおけるプログラムの実行。

sh script.sh

シェルスクリプトでは、シェバンを書くことも多いですが、実質的にはシェルを実行するコマンドでプログラムを実行しています。

すぐにプログラムを実行することができるということの意義はなんですか?

プログラムを書いたときに、すぐにプログラムを実行することができるということの意義はなんでしょうか。一番の利点は、プログラムを書いて実行して確認というサイクルを数多くこなせるということです。

書く、実行、確認。書く、実行、確認。書く、実行、確認。実際のシステム開発では、このサイクルを何千回、何万回と繰り返します。

このサイクルを素早く繰り返せるので、プログラム開発の生産効率が高いのです。

Perlがすぐに実行できるという機能は、シェルスクリプトがすぐに実行できるということを参考にして作られています。

Perlは現代的なスクリプト言語の元祖ですが、すぐに実行できるという部分は、シェルスクリプトの機能を参考にして作られています。

Perlは、内部的には、構文木にコンパイルされてから実行されるのですが、perlコマンドは、構文木へのコンパイルと実行という処理を一度に実行するように設計されています。

この点では、シェルスクリプトが、1行づつ実行をしていくのとは、対照的です。

Perlは、プログラム全体に対して、文法をチェックし、文法エラーがあった場合は、コンパイルエラーになります。

コンパイルされた情報は、ファイルには出力されず、メモリ上だけに存在しています。メモリ上で、コンパイルと実行という一連の流れを行うので、まるで、コンパイルなしで、実行されているように見えるのですね。コンパイル作業は一瞬で終わり、すぐに実行されます。