▼3-1 まずは4則演算 |
perlの基本は次の通りです。 ・文の末尾にははセミコロン( ; )をつけます。 ・通常の変数にはダラー( $ )を付けて表わします。 ・print は「"....." を表示せよ」という命令です。 ・\n は「改行せよ」という意味を持ちます。 つまり、C言語とかなり似てますね。$x = 5; は 「変数$xに値5を代入する」 という意味になります。 …と、これだけ分かれば次のプログラムが作れます。
C言語でも、#include<stdio.h>とかありますよね。 2行目では、ブラウザに"これから返却するデータはHTMLだよ"と教えています。 これを実行すると、画面には「3」と表示されました。 当たり前と言えば当たり前なのですが、なにげにこのプログラムも苦労しました。 print "$z \n";のところを、print "z \n";と書いたせいでエラー起きまくり。 perlの場合、変数には毎回ダラー( $ )をつける必要があるみたいです。 |
▼3-2 for文を使ってみる |
基本的なfor文の書き方は、 for (変数 = 初期値; 変数 <= 終端値; 変数++){文} というわけで、C言語とほとんど同じです。
|
▼3-3 if文、elsif文 (おみくじを作ろう) |
if文、elsif文もほとんどC言語と同じです。 あえて言えば、C言語では「else if」なのがperlでは「elsif」であることくらいかな? これを使って、おみくじを作ってみました。 JavaScriptでも余裕でできるけど、細かいことは気にしない…
$a=srand; はランダム数値の初期化 $a=rand(5); は、aに0以上5未満の数をランダムに代入 です。これを実行すると、大吉、中吉…がランダムで表示されるはずです。 ただ、 if (0 <= $a && $a <=1) { の部分を if (0 <= $a <=1) { とするとエラーになりました。う〜ん… |
▼3-4 ファイル入出力 (簡単なカウンターを作ろう) |
次に、ファイル入出力に挑戦しました。 まず下準備として、count.txtを用意します。(名前は何でもOK) 中身には適当な数字を書いて、実行するCGIと同じフォルダに入れておきます。 で、CGIのほうは下みたいになります。
ファイルのオープンにはopen関数を使います。使い方は次の通りです。
ここで、FILEにあたる部分をファイルハンドルと呼びます。 ファイルハンドルの名称は任意でつけられますが、読み込みの場合はIN、書き込みの場合はOUT とすれば分かりやすいです。 |
▼3-5 もっとデータが多くなったら? |
前回のカウンターでは、count.txtにはカウントという1つのデータしかありませんでしたが、
読み込むデータが増えた場合はどうするでしょう? この時には、splitを使います。splitは文字列を区切り文字で分割します。 これを使った例が、次のプログラムです。
上の例では、$dataを「:」という文字で区切って配列にしています。 例えば$dataが25:58:1:17:11:2000だったとすれば、 $sec=25,$min=58、$hour=1…となります ($sec,$min,$hour,$mday,$mon,$year) = localtime(time); では、時刻を年月日時分秒などに分解しています。 ただし、月は0〜11、年は1900年からの年数 で値が返されるので、上のように修正してあげましょう。 そして、$sec:$min:$hour:$mday:$mon:$yearという形で再び書き込んでいるので、次にアクセスしたときに、 この時間が「前回のアクセス」になるわけです。 |