利用するには?
まず始めにPerl(Unix入り口やWin入り口やMac入り口)をダウンロードして使えるようにしよう。Perlの名前が少しずつ違うけれどできることは同じだ。英語でインストール方法がわからなければGoogle(入り口)さんに聞いてみよう。
また、Perlはコマンドプロンプトという俗にいう黒画面で動かすけれど、ここでの動作は少し危険かも・・・それは、たとえばファイル操作を行う時に正規表現(後のLessonで説明)を使った場合、少しのソースコードの間違いで大量のファイルにおいて誤操作をしてしまう可能性があるから。こればかりはPerlの良い所の副作用であり仕方ないね。対策方法の一つとして、PCにWEBサーバーをインストールすることで、より安全に動かすことができるよ。他にはOSの実行権限を利用する。でも、こっちはOSに依存するので、CGIとしてWEBサーバー等のソフトの中で実行させる方が簡単で安全な方法だね。
まだ必要ないけれど、インストールするサーバーソフトはWinならAN HTTPD(入り口)が有名、ちょっと構築レベルが上がるけどApache(入り口)というソフトはWin、Linuxどちらでも有名だね。kimiは内部向けサーバーはWinでAN HTTPD、外部向けにはLinuxでApacheを使っているよ。
あと、ソースを書くエディタはメモ帳でもできるけれど、いろいろ使ってみてお気に入りのエディタを見つけよう。kimiがお気に入りなのは、関数の色分けや自動インデントをしてくれるサクラエディタ入り口で、おすすめできる一品。
ちなみに基本はWinで説明していくよ。Linuxとかの人はほとんどそのままでいいと思うけれど随所読みかえたりしてね。
早速
エディタで
use strict;
print "\"K's Style\"";
exit;
と5行だけ書き、ファイル名をtest.plとして保存しよう。「#!・・・」の点々部分はperl.exeの場所だ。各自違うから気をつけて。
コマンドプロンプトを開き、
cd (test.plのパス)
perl -c test.pl
と各行半角英数で入力し、エンターキーを押す。この先も特に指定しない場合の入力は半角英数で、エンターキーで実行させるよ。「-c」と付いているのは構文チェックの実行オプション。
test.cgi syntax OK
と表示されたら構文はあっている。そうでなければ良くソースコードを見直して表示されるまで繰り返してね。きちんと半角英数になっているかな?セミコロン「;」は各文末にあるかな?「;」はプログラムにとっての一行だから見た目が複数行でも改行は無視される。でも、先頭の実行パスのところには要らないんだ。
表示されたら今度は
perl test.pl
と入力。
"K's Style"
と表示されたかな?表示されない場合「/usr/bin/perl」が間違えている可能性が大きいよ。perl.exeをPC内で検索し、ちゃんとしたパスに置き換えてソースコードを書いてね。また、Winではインストール時に実行する場所が指定されて常にそこでPerlを実行するようになるから、Perlの場所(パス)に関係なく実行できる場合が多いけれど、間違いや勘違いの種なのできちんと指定しておこう。
どう?表示されたかな?
#!/usr/bin/perl -w
「#!/usr/bin/perl」に続く「-w」は警告を表示する実行オプション。そのほかにもたくさんあり、さっきの「-c」もそう。「-w」の代わりに「-c」を書いてみると、ソースコードは実行されずに構文チェックだけをするよ。実行オプションについてはコマンドプロンプトに
perl -help
と入力すると一覧が表示さる。また、Perlで「#」はコメント行だけれど一行目の「#!」は形式であってコメントではないんだ。
use strict;
「use strict;」は構文を厳しくして間違いを少なくする為に使用する。無くても良いけど、変数のタイプミスや代入ミス、参照ミスなどの間違いを少なくするためにもコードしておいた方が良いよ。短いソースなら「いい加減な構文」の仕様のままでも良いけれど日ごろからの習慣だね。
「#print」は実は実行する為にはまったく関係ない。この「#」はコメント行の始まりで、一行目との違いを説明する為にコードしておいた。また、「=pod」と「=cut」をそれぞれ一行ずつにかいて、その間の行に文を挟むと複数行のコメントも可能だ。この先、長いソースコードをコードしていくと自分でもわかりにくくなるから適度にコメントを入れることをおすすめしておくよ。
print "¥"K's Style¥"";
「print "¥"K's Style¥"";」はprintという関数に「""」で括られた文字を処理させてるんだ。文字は日本語でもなんでも構いけれど、「"」を表示したい場合は「¥」をつかう。「"」の前に「¥」を書くことによってすぐ隣の「"」を文字の「"」として処理させることができるんだよ。他にも¥'、¥;、¥@、¥%、¥$、¥¥等があって、コードに使用する特殊な文字をそれぞれ文字として扱う為に「¥」を使う。そうしないとprintは文字の終わりや文字自体も何か判断できずに構文エラーになってしまう。ちなみにこの子たちをエスケープシーケンスと呼ぶよ。
printは文字出力の関数で、この例では出力先を指定していないので、標準出力のコマンドプロンプトに出力しているんだ。
exit;
「exit;」はプログラムを終了させる。コードした時点で終了するため、その先は実行されないよ。
これでLesson1は終わり!今回はあまり深く考えずに、プログラムの実行が出来ればいい。Lesson2はちょっと?ややこしい。休憩してからすすもう。