Perl プログラムの実行

まず作ったプログラムの実行方法から始めよう。

最初はプログラムを通常のファイルとしてセーブし、Perl にそのファイルを指示して実行させる方法だ。 Perl はコマンドラインの最初のファイルをプログラムと見なしてロードし実行する。 もし他にファイル名の指定があれば、それはプログラムの入力と見なされる。

簡単なプログラムで試してみよう。 まず、次のようなテキストファイルを用意する。 vi や emacs (mule) のようなエディタを使って作ってもよいし、cat を使ってもよい。 内容は次の通りだ。

print "Hell, World\n";

foo.pl という名前でセーブしたら、次のコマンドラインを実行する。

% perl foo.pl
Hell, World

Perl のプログラムをセーブするときは、拡張子を .pl にしておくとよい。 ぱっと見た目で、すぐに Perl プログラムだと分かるからだ。 拡張子を .pl にしなければ動かないわけではないので、自分で好きな名前をつけてもよい(長ったらしく .perl と付けてもよい)。 拡張子のないファイル名でもよいし、 場合によっては CGI のように .cgi という拡張子でなければならないこともある。

次は、シェルの「#! 記法」を使った方法だ。 シェルスクリプトでは、最初の行が「#!」で始まっているときは、行の残りの部分をプログラム名と見なして実行するという機能がある。 試しに次のようなシェルスクリプトを書いてみよう。

#!/bin/sh
echo $*

bar.sh という名前でセーブし、実行ビットを立ててシェルスクリプトとして起動すると、次のような動作をする。

  1. コマンドラインから、次のように入力する。
    % ./bar.sh abc xyz 123
  2. シェルは最初の行を見て、次のようなコマンドラインを生成する。
    /bin/sh bar.sh abc xyz 123
  3. /bin/sh が bar.sh を読み込み、実行する。 シェルスクリプト bar.sh が、与えられた引数を echo 文で表示する。

#! 記法の巧妙な点は、#! で始まる最初の行は、多くのプログラムにとってコメントとして扱われ、無視されるということだ。 これは Perl でも同様だ。 最初の foo.pl を #! 記法で書き換えてみよう。

#!/usr/bin/perl

print "Hell, World\n";

ファイルをセーブし、実行ビットを立て、実行してみよう。 Perl を明示的に指定したときと同様に実行されるはずだ。

シェルスクリプトでも Perl プログラムでも同じことだが、自分で役に立ちそうなツールを作ったときは、それに Unix 風の短い名前を付け、#! 記法で適切なインタプリタが起動されるよう設定してセーブしておくことができるわけである。 これ以降、プログラムとして自立しているスクリプトは #! 記法で書くこととし、サブルーチンファイルなどの単体では動作しないものは .pl 拡張子を付けることにする。


[go to next chapter]
[back to index]