разделите чтение и запись. А то вот строкой print OF $_ Вы куда пишете попробуйте себе объяснить. В какую строку файла? Вывод буферизируется и поэтому ваши "*" только в конце и пишутся. Но даже если буфер отключить ($| = 1) то это Вам не поможет. Делайте так например.
Код | open(OLD, "<", $old_file) or die $!; open(NEW, ">", $new_temp_file) or die $!; while(<OLD>) { s/sa/*/g; print NEW $_; }
close(NEW); close(OLD);
#copy new to old: rename $old_file, "$old_file.backup"; rename $new_temp_file, $old_file;
|
Над чем тут три дня мучиться? :-)
Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id51c9988f6ccc190b0c000002#findElement_E7045_51c99ebe6ccc19cf0d00d67e_0 |