[ テキストファイル ]
1行だけ読み出す CGI 例です。
[ バイナリファイル ]
#!/usr/bin/perl
# 本宣言の Dir はサーバーによって異なる
print "Content-type:text/html\n\n"; # この宣言はサーバーによっては不要
# カウンタファイルからカウンタ数字を取り出す
$cfname = "CounterD.cgi";
open(FP,"<$cfname");
$count = <FP>;
close(FP);
画像ファイルなどをバイナリで読み出すには次のようにします。
●ファイルの書出し
#!/usr/bin/perl
print "Content-type:text/html\n\n";
open(FP, $gifname);
read(FP, $gdat, 10000); # バイナリで読み出す、バイト数は大きな数字を入れておく
close(FP);
[ テキストファイル ]
数行書き出す CGI 例です。後で紹介するアクセスカウンタから切り出したのでちょっとバタくさいソースですが。
書込みの場合は、更新('>')か追記('>>')かを明示する必要があります。
[ バイナリファイル ]
#!/usr/bin/perl
print "Content-type:text/html\n\n";
# 以下に現れる $???? の変数はこの位置で宣言されていること。
# ここではサンプルなので
$ketasr=?;
$cfname = "CounterD.cgi"; # Dir によっては "/xxxx/xxxx.xxx" とか "../xxx/xxx.xx" とかに変わる
$ketadummy=2;
if($ketasr==0) {
open(FP,">$fname"); # 先頭は書替モード(いったん空にするという意味)
}else {
open(FP,">>$fname"); # 以後は追加モード
}
$outstr=sprintf("桁 %d ダミー桁 %d",$ketasr,$ketadummy);
print FP $outstr; # 桁指定値を出力
print FP "\n"; # CR
$outstr=sprintf("数 [%d]",$su);
print FP $outstr; # カウンタの指定桁該当数字出力
print FP "\n"; # CR
print FP "メール送信内容 ";
print FP $mailrslt; # メール送信結果の出力
print FP "\n"; # CR
close(FP);
CGI でバイナリファイルを書き出すというのは考えにくいのでパスします。