- ベストアンサー
配列の一部を書き換えてファイルに保存する方法は?
$dicname ='GermJ.txt'; open(IN, "$dicname"); @list = <IN>; close(IN); 読み込んだ配列@listの5番目のデータを'aaaaaaaaaa'に書き換えたいのですが、 $list[5]='aaaaaaaaaaaaaaaaa'; open(OUT, "> $dicname"); foreach (@list) { print OUT $_; } close(OUT); とやって、ファイルの中身を調べると、6番目の文字列データが5番目の文字列データの後ろにくっついてしまっています。 改行マークを $list[5]='aaaaaaaaaaaaaaaaa',\n;のように行末に追加しても、次の行とのあいだに空間が生まれます。基本的なファイル書き込みの知識をお尋ねして申し訳ありませんが,どうかお教えください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- leaz024
- ベストアンサー率75% (398/526)
回答No.4
- natsuki_tk
- ベストアンサー率35% (99/279)
回答No.3
- leaz024
- ベストアンサー率75% (398/526)
回答No.2
お礼
早速御教示を頂きありがとうございました。 試してみましたのでその結果をまずお知らせします。 $list[5]='aaaaaaaaaaaa'."\n"; とすると、結果は1行空白が入ってしまい、リストにいわば穴があきました。 つぎに、chomp(@list=<IN>);としてprint OUT "$_\n";と$list[5]='aaaaaaaaa';のくみあわせですが、やはり一行空白があきました。 私がやりたいことは、<textarea..>xxxx<Textarea>のなかの'aaaaaaaaa'に変更を加えてこの配列をまともとのファイルに書き込む、事です。 <Textarea>か、転送してCGIが受け取る段階で空白が入ったりするのでしょうか? ひどく低次元の質問ですが、端末上のプログラムでは考えられなかったことなので当惑してます。どうぞよろしくご指導をお願い申し上げます。