#0889(水原@ういんずらんど氏)の書き込みを引用します:
>#0884(matu氏)の書き込みを引用します:
>>本で良く登場する
>>open(IN,"+<$file")
>>に関して、以下[ソース1]のように、オープンしたファイルの中の有る文字列を
>>発見したら置換するようなプログラムを作ったのですが、実行するとなぜか元の
>>ファイルが消えてしまいます。なぜなのか教えてください。
>>--------------------(ソース1)------------------------
>>#! /usr/local/bin/perl
>>$file = "sample.txt";
>>open(IN,"+<$file");
>>while(<in>){
>> s/bbb/xxx/;
>> print IN $_ ;
>>}
>>close(IN);
>>-------------------------------------------------------
>>-------------------[sample.txt]------------------------
>>aaa
>>bbb
>>ccc
>>ddd
>>-------------------------------------------------------
>
>ウチで試したら、ファイルの内容が変化しなかった。
open(IN,"+<$file")
私の家では「ファイルの内容に変化なし」でした。
open(IN,"+>$file")
私の家では「ファイルが消える」でした。
入力と出力を別のファイルにすれば上手くいくのになぁ。
ファイルを開いてからすぐに閉じてるので処理が間に合わないのかな?