Perlランダムメッセージ


えーと、基本的にはSSIです。
よくわかんないけど、CGIじゃフレームとか利用しないと出来ないみたいなんですね、これが。
細かい説明はしないので、初心者様はそれっぽいページでちょっと学んでくださいね。

ではいきなりですがソースです。

#!/usr/local/bin/perl

$txtfile = "randmes.txt";

open(FILE, "$txtfile");
@ayuayu = <FILE>;
close(FILE);

srand(time + $$);
$n = int(rand($#ayuayu + 1));
print $ayuayu[$n];
このスクリプトを「randmes.pl」とします。
そして、読み込むファイルを「randmes.txt」としています。
「randmes.txt」はランダム表示させたい文を改行で区切ったテキストファイルです。
文章の途中で改行を入れたいときは「<br>」タグを入力すれば問題無しです。

「randmes.txt」の例

この世に不思議なことなど何一つないのだよ。
『昔はよかった』とは進歩についてゆけぬ人の言葉である
堕落はいかん。<br>まぬけは仕方ないが<br>堕落だけはいかん。
男の子は自分の大切な人が危険な時に<br>命をかけてその人を守る盾にならなきゃ
起きるから、陳腐って言うんですよ
薬打って…ずっと春だったらいいのに
任意の奇跡なんて、おかしいですよね

そしてこの2つのファイルをFTPで転送したら「randmes.pl」を実行するだけです。
あ、パーミッションの設定も忘れずに。

実行文
<!--#exec cmd="./randmes.pl"-->
こいつを適当なところに放り込んでください。
FONTタグ等もご随意に。
以上です。



次に、↑を応用して、「誰が・何処で・どうした」を制作してみます。

「daredoko.cgi」ソース

#!/usr/local/bin/perl

$file_dare = "./darega.dat";
$file_doko = "./dokode.dat";
$file_dosi = "./doshita.dat";

open(FILE, "$file_dare");
@darega = <FILE>;
close(FILE);
$sayuri1 = @darega;

open(FILE, "$file_doko");
@dokode = <FILE>;
close(FILE);
$sayuri2 = @dokode;

open(FILE, "$file_dosi");
@doshita = <FILE>;
close(FILE);
$sayuri3 = @doshita;

srand(time + $$);
$mai1 = int(rand($sayuri1));
$mai2 = int(rand($sayuri2));
$mai3 = int(rand($sayuri3));

print "$darega[$mai1] $dokode[$mai2] $doshita[$mai3]"
はい、難しいことは無いですね。ただ量が3倍になっただけです。