■=Perl, ■=結果
| [an error occurred while processing this directive] |
| <!--#exec cgi="./cgi-bin/haiku3.cgi" --> |
さてそのスクリプトの説明の前に、上の句は縦書きになっています。これは無理やりにHTMLのTEBLE記述で一文字づつ改行をして、縦書きに見えるようにしています。
$haiku1 = './haiku1.txt'; $haiku2 = './haiku2.txt'; $haiku3 = './haiku3.txt'; |
open(HAIKUDATA, "$haiku1"); @haiku1 = <HAIKUDATA>; close(HAIKUDATA); open(HAIKUDATA, "$haiku2"); @haiku2 = <HAIKUDATA>; close(HAIKUDATA); open(HAIKUDATA, "$haiku3"); @haiku3 = <HAIKUDATA>; close(HAIKUDATA); |
$rand1 = int(rand(@haiku1)); $rand2 = int(rand(@haiku2)); $rand3 = int(rand(@haiku3)); |
$word1 = $haiku1[$rand1]; $word2 = $haiku2[$rand2]; $word3 = $haiku3[$rand3]; |
chomp($word1); chomp($word2); chomp($word3); |
$mojisu = length($word1)/2;
for ($i = 0; $i < $mojisu; $i++){
$gyou1[$i] = substr($word1,$i*2,2);
}
$mojisu = length($word2)/2;
for ($i = 0; $i < $mojisu; $i++){
$gyou2[$i] = substr($word2,$i*2,2);
}
$mojisu = length($word3)/2;
for ($i = 0; $i < $mojisu; $i++){
$gyou3[$i] = substr($word3,$i*2,2);
}
|
print "Content-type: text/html\n\n";
print qq|<table border="3" bgcolor="#EEEEEE">\n|;
print qq|<tr><td>\n|;
print qq|<table border="0" cellpadding="7" width="250" height="350">\n|;
print qq|<tr><td valign="top" colspan="2" width="100"><img src="./images/coco03_l.gif" width="100" height="75"></td>\n|;
print qq|</font></tt></td><td align="center" valign="middle" rowspan="2"><tt><font size="+3" face="HG正楷書体-PRO">\n|;
foreach $moji (@gyou2){
print "$moji<br>\n";
}
|
最初から終わりまでのスクリプトを下に示しておきます。
#!/usr/local/bin/perl
# 俳句データ読み込み設定
$haiku1 = './haiku1.txt'; #5
$haiku2 = './haiku2.txt'; #7
$haiku3 = './haiku3.txt'; #5
# 各俳句データ読み込み
open(HAIKUDATA, "$haiku1");
@haiku1 = <HAIKUDATA>;
close(HAIKUDATA);
open(HAIKUDATA, "$haiku2");
@haiku2 = <HAIKUDATA>;
close(HAIKUDATA);
open(HAIKUDATA, "$haiku3");
@haiku3 = <HAIKUDATA>;
close(HAIKUDATA);
# 乱数作成
$rand1 = int(rand(@haiku1));
$rand2 = int(rand(@haiku2));
$rand3 = int(rand(@haiku3));
$word1 = $haiku1[$rand1];
$word2 = $haiku2[$rand2];
$word3 = $haiku3[$rand3];
chomp($word1); #開業\nを取り除く
chomp($word2);
chomp($word3);
# 文字をバラバラにする
$mojisu = length($word1)/2;
for ($i = 0; $i < $mojisu; $i++){
$gyou1[$i] = substr($word1,$i*2,2);
}
$mojisu = length($word2)/2;
for ($i = 0; $i < $mojisu; $i++){
$gyou2[$i] = substr($word2,$i*2,2);
}
$mojisu = length($word3)/2;
for ($i = 0; $i < $mojisu; $i++){
$gyou3[$i] = substr($word3,$i*2,2);
}
# 句の表示用テーブル処理
print "Content-type: text/html\n\n";
print qq|<table border="3" bgcolor="#EEEEEE">\n|;
print qq|<tr><td>\n|;
print qq|<table border="0" cellpadding="7" width="250" height="350">\n|;
print qq|<tr><td valign="top" colspan="2" width="100"><img src="./images/coco03_l.gif" width="100" height="75"></td>\n|;
print qq|</font></tt></td><td align="center" valign="middle" rowspan="2"><tt><font size="+3" face="HG正楷書体-PRO">\n|;
foreach $moji (@gyou2){ #2行目印字
print "$moji<br>\n";
}
print qq|</font></tt></td><td align="center" valign="top" rowspan="2"><tt><font size="+3" face="HG正楷書体-PRO">\n|;
foreach $moji (@gyou1){ #1行目印字
print "$moji<br>\n";
}
print "</font></tt></td></tr>\n";
print qq|<tr><td align="right" valign="bottom"><tt><font size="+1" face="HG正楷書体-PRO">与<br>謝<br>野<br>枯<br>弧</td>\n|;
print qq|<td align="center" valign="bottom" rowspan="2"><tt><font size="+3" face="HG正楷書体-PRO">\n|;
foreach $moji (@gyou3){ #3行目印字
print "$moji<br>\n";
}
print "</tr></table>\n";
print "</td></tr></table>\n";
exit;
|
| | Back | Coco's Home | ココとPerlで遊びませんか | |