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

Perlでトップレベルに文が書けるのはシェルスクリプトと同じ

Perlでトップレベルに文が書けるのはシェルスクリプトと同じです。シェルスクリプトは、もともとCUIでインタラクティブに対話をするシェルのコマンドから始まって、バッチ処理を記述するために生まれました。そのため、いきなり文を書くことができます。このアイデアをPerlも採用しました。

いきなり文が書けるというのは、スクリプト言語の特徴で、関数定義を行う必要がありません。関数の定義の仕方を知らなくても、関数の使い方だけ覚えれば、すぐにプログラムを書けるというのが、スクリプト言語の良いところですね。

Perlは文をトップレベルで書ける

Perlは文をトップレベルで書けます。

print "Hello, World!\n";

シェルスクリプトはトップレベルで文を書ける

シェルスクリプトは文をトップレベルで書けます。

echo "Hello, World\n"

Perlがシェルスクリプトを参考にした、トップレベルに文が書けることの意義とは

Perlは、いくつかのプログラミング言語の文法を参考にしていますが、トップレベルにいきなり文が書けるという部分は、シェルスクリプトの文法を採用しました。

C言語の場合は、トップレベルが、関数定義です。これは、構文解析の観点から見た場合は、トップレベルと、その下のレベルで、構造が同じなのできれいです。

main(int argc, char *argv[]){
  
}

Perlとシェルと同じく、トップレベルに、文が書けます。これは、実際は関数なのですが、自動的に関数にしてくれているのです。つまり、これは、人が手軽にプログラムを書き始めるためのシンタックスシュガーなのです。

print "Hello, World!\n";

内部では、たとえば、以下のように補われています。(実際の実装ではなく、あくまでイメージです)

sub main {
  print "Hello, World!\n";
}
main();

プログラムを書き始めるときに、ただ単に、すぐ書けるというだけなのですが、これが、すぐにちょっと書きたい。ワンライナーを書きたいという場合に、とても便利なのです。

Perlは手軽さという点で、先輩である、シェルスクリプトをこの点で、参考にしたのですね。