TEDIA会員に登録したメールアドレスとパスワードを入力してください

メールアドレス:

     パスワード:


パスワードを忘れた方はパスワードの確認を行ってください。

TEDIA会員へのご登録がお済みで無い方はこちらで登録ができます


>> テクノロジーポータル TEDIA トップページへ戻る <<

Think IT Software Developer's Think IT Find-IT 失敗しないソフト選び Find-IT TEDIA テクノロジーポータル TEDIA インストールマニアックス2008 インストールマニアックス2008

TEDIA SponsorsOpen Source Web Development Tutorials - Dev Shed

Perl入門:ファイルに追記する、書き込む
(2009/03/11公開)

ファイルに追記する、書き込む

 前回のチュートリアルでは、ファイルの作成と、ファイル内のデータの操作方法を説明した。今回は、ファイルへの追記(アペンド)の方法と、書き込みの方法を説明する。時間があれば、ファイルチェックについても説明しよう。

ファイルに追記する

 ファイルに情報をアペンド、つまり追加したいことがある。簡単だ。元のデータファイルを開いて、ページの後尾に、好きなだけ行を追加すれば良い。例えば、例のsuperhero.txtファイルにデータを追加したいとしよう。

 元のファイルの内容を再録する。


  The Incredible Hulk|Super Strength|I rip my pants

  Daredevil|Heightened Senses|I have poor fashion sense due to blindness

  Apache Chief|the ability to grow Very Tall|I wear a skirt



すべてのスーパーヒーローのうちで最もダサイと思うスーパーヒーローの行を新たに追加しよう。

Aqua Man|the ability to communicate with fish|deep fryers and tartar sauce(アクアマン|魚とコミュニケーションできる|フィッシュフライとタルタルソース)

superhero.txtファイルは、次のようになる。


  The Incredible Hulk|Super Strength|I rip my pants
  Daredevil|Heightened Senses|I have poor fashion sense do to blindness
  Apache Chief|the ability to grow Very Tall|I Wear a skirt
  Aqua Man|the ability to communicate with fish|deep fryers and tartar sauce



 すごいだろ?

 もちろん、コードを使用して、データをアペンドすることもできる。 そのコードは次のようになる。


$my_file="suphero.txt";
open(PLOT,">>$my_file") || die("This file will not open!");
print PLOT "Aqua Man/|the ability to communicate with fish/|deep fryers 
and tartar saucen";
close(PLOT);



 上のコードは少々複雑なようだね。分かってるさ。すぐに、いくつかの違いに気付くと思う。まず、ファイルを開くとき、コンマの後にダブルクオートを使用しているし、開くファイルの名前の前に不等号を2つ(>>)使用している。このシンボルは、データを追加したいのであって、データを読み取るのでもなく、上書きするのでもないことをプログラムに知らせるために使用する。

 次に、親愛なるprintコマンドを使用し、その後に参照のPLOTを続けて、テーブルにデータを配置している。お分かりのように、ここでも、カラムの分離のためにパイプ(|)デリミタを使用している。ただし、(|)の前にバックスラッシュ(/)を使用して、エスケープする必要がある。最後に、追加するデータの終わりを示すため、センテンスの終わりにn(改行)を追加している。

 次のように、変数を使用することもできる。


$my_file="superhero.txt";
$heroname="Aqua Man";
$heropower="the ability to communicate with fish";
$heroweakness="deep fryers and tartar sauce";

open(PLOT,">>$my_file") || die("The file cannot be opened!");
print DAT "$heroname|$heropower|$heroweaknessn";
close(PLOT);



 このコードは前のコードと同じ効果を持ち、可読性が良く、理解しやすい。


1    2    3    4    5    次のページ

Copyright © 2008 Ziff Davis Enterprise, Inc.
Originally appearing in the U.S. Edition of Dev Shed. All Rights Reserved.