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