ファイルに接触

 
 
CGI として Perl を使用する場合、まず目的とするのがファイルへの接触だろうと思います。
掲示板、チャット、ゲーム……大抵のことをするのには、避けることのできない道でしょう。
例えば、扱うファイルの名前を、
 
$filename="file.dat";
 
と定義しておき、さあこのファイルからデータをロードする……という場合はどうするかというと、
 
 
open(FILE, "<$filename");
while($_=<FILE>){
  chop;
  print "$_\n";
}
close FILE;
 
 
このサンプルプログラムでは、「file.dat」というデータファイルの内容を1行ずつ読み込み、それをそのまま出力しています。この時、ファイルハンドル名「FILE」は任意の文字(使用している変数名を含む)で構いませんが、Perlの予約語との衝突を避けるため、全て大文字にするのが望ましいです。
 
さて、これでロードはできるようになりました。次はセーブです。
 
 
open(FILE, ">$filename");
print FILE "セーブする内容";  …☆
close FILE;
 
 
赤い字の「>」は、書き込みする、という意味です(逆にするとロードになります。また、ロードの場合は省略可です)。ここで、2行目(☆印の行)を省くと、「file.dat」という新しい空のファイルを作成することができます。また、「>」を「>>」にすることで、既にファイルに書き込まれている内容の続きからデータを書き込むことができます。
 
 
 
 
 
Programming's top