Perl Script File

last-modified: 2nd/June/'01;
since: 1st/June/2001;

前節に紹介した方法では、ワンライナーしか実行できませんし、一々スクリプトを記述しなければなりません。

通常一度作ったスクリプトは何度も利用します。このために、ファイルから Perl を実行してみましょう。

well.pl と云うファイル名で、下記のように記述して保存してください。左列の番号は、読みやすいように行番号を加えただけです。実際には、行番号は記述しないでください。

well.pl>>

 1:
 2:
 3:
 4:
print "What is your name? ";
$name = <STDIN>;
chomp $name;
print "Dear $name. Wellcome! \n";

このファイルを UNIX 上の任意のディレクトリに保存し、このディレクトリからシェルで、次のようにコマンドを入力してください。

シェルプロンプト1>>

 1:
% perl well.pl

すると、シェルプロンプトに次のように表示されます。

シェルプロンプト2>>

 1:
 2:
% perl well.pl
What is your neme?

そこで、名前をキーボードから入力します。

シェルプロンプト3>>

 1:
 2:
% perl well.pl
What is your neme? SUGAI, Manabu

すると、次のように表示されて、終了します。

シェルプロンプト4>>

 1:
 2:
 3:
 4:
% perl well.pl
What is your neme? SUGAI, Manabu
Dear SUGAI, Manabu. Wellcome!
%

つまり、 well.pl は、通常のバッチファイルと同じ働きをしているわけです。

動作を確認してから、スクリプトを読んでいきます。

well.pl>>

 1:
 2:
 3:
 4:
print "What is your name? ";
$name = <STDIN>;
chomp $name;
print "Dear $name. Wellcome! \n";

line 1;

組み込み函数 print引数"What is your name? " となっています。画面にこの引数が表示される筈です。行末に改行 \n を記述していないことに注意してください。

line 2;

画面の "What is your name? " に続いて、キーボードから名前を入力すると、変数 $name に記憶されます。

Perl では、「 $ に任意の文字列」で、変数として扱われます。<STDIN> は、「標準入力装置からの入力」を意味します。 Perl の言葉では、 <STDIN> は、「標準入力装置のハンドル」と言います。他に、「入力ファイルのハンドル」、「出力ファイルのハンドル」などが在ります。

line 3;

キーボード入力からは、改行記号も含まれてしまいますので、これを削除するのが、 chomp です。これは、引数の改行記号を削除する演算子です。

line 4;

再び函数 print です。引数の中に、先ほど定義した変数 $name が含まれていることに注意してください。

引用符が二重引用符 " の場合は、変数が、代入されている値に置き換えられます。これを変数展開と呼びます。例えば、三行目の改行の削除命令が記述されなければ、次のように画面には表示されるはずです;

シェルプロンプト>>

 1:
 2:
 3:
 4:
 5:
% perl well.pl
What is your neme? SUGAI, Manabu
Dear SUGAI, Manabu
. Wellcome!
%

一方、引用符が一重引用符 ' の場合は、変数が展開されず、直接表示されます。即ち、画面には次のように表示される筈です;

シェルプロンプト>>

 1:
 2:
 3:
 4:
% perl well.pl
What is your neme? SUGAI, Manabu
Dear $name. Wellcome!
%

次にこのファイルを、ファイル名だけで実行できるように工夫します。これを、「実行可能属性をつける」と云います。

Copyright: SUGAI, Manabu. Since: 2001
FC2> モビット