cgi011 「ファイル操作 print(書き込み)」(04/11/29 Mon)
まぁファイル読み込むだけじゃあアレなんで
書き込むことも必要でしょう。
☆ ファイルに書き込む print ☆
#!/usr/local/bin/perl
$savefile = "save.txt";
open(file,"$savefile");
$test = <file>;
close(file);
$test = $test + 10;
open(file,">$savefile");
print file "$test";
close(file);
print "Content-type: text/html\n\n";
print $test;
exit;
ちょっとだけ見やすいように空行あけてみました。
実行には影響ありませんので、皆さんも見やすいように工夫してください。
1〜5行目までは、前回といっしょです。「save.txt」を開いて、中の内容を
$testに代入しています。(save.txtには数字の100と書いておきまいた。)
つまり、$testには、100が入ってることになります。
そして、7行目で、この$testに10を加え、$testは110になります。
そして9行目、openの使い方が微妙に違います。これは、
「ファイルの内容を読むために開く」のと、「ファイルに書き込むために開く」の違いです。
「ファイルの内容を読むために開く」場合、open(file,"$savefile");か、open(file,"<$savefile");と書きます。
「ファイルに書き込むために開く」場合、open(file,">$savefile"); と書きます。
まぁ < か > の違いだけですけどね。
そして実際書き込むには、print file "$test"; としています。
printってのは出力だと言ってきましたが、ファイルを指定した場合、
ファイルに出力となります。
print ファイル "書き込む内容"; って形になってます。
ファイルには、openで開いたfileを指定、内容には、$testを指定しています。
これで、fileつまりsave.txtに、$testつまり110を書き込んだというわけです。
んで、開きっぱなしなので、closeで閉じた。
で、実際実行してみると、ブラウザには110と表示されるし、save.txtには110と書かれています。
さて皆さんお気づきだと思いますが、今回説明したCGIは、
「アクセスされる」⇒「ファイル開く」⇒「数値読む」⇒「数値に10足して表示する」⇒「足した数値をファイルに書き込む」⇒「終了」
となっています。何かに似ていると思いませんか?
試しに、ブラウザに表示して、「更新」を連打してみましょう。
そうカウンターのような動きになるでしょう?
今回のが、カウンターの簡単な仕組みなんですね。
♪ 結果表示 ♪
110
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||