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

 

★ Top ★

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送