インフォメーションBBS
[使い方]
[タイトルのみ]
[関連発言]
[最新20発言]
[過去ログ一覧]
発言#0891を修正または削除できます:
お名前:
←パスワード(修正用)
アドレス:
タイトル:
本文:
#0888(matu氏)の書き込みを引用します: >ちょっと本筋からそれてしまうのですが本(すぐに使えるPerl スクリプト〜)の >6ページの解説によると「+>」と「+<」はともに「読み書き両用」となっているの >ですが、機能の違いがなにか有るのでしょうか? これは説明不足でした。同じ「読み書き両用」とはいっても、 "+>"は、既存のファイル内容をそのまま保存するのに対して、 "+<"は、オープンの時点でファイル内容をクリアするものです。 >前日の質問に補足をいたします。 >> print IN $_ ; >の部分を > print $_ ; >のように標準出力に出せば、期待通り >aaa >xxx >ccc >ddd >となりますが、 あ、すみません。「print $_;」と見まちがえていました。 同じファイル(IN)に書き戻すのですね。 このように「ひとつのファイルを読みつつ同時に書き換える」という 処理は難しいと思ってください。もしそれをするなら、seek関数を使って、 (1)どの位置(何バイトめ)から読むか、 (2)どの位置に書き込むか をいちいち指定しないといけません。 また、そのためには、1行のデータサイズを固定するなどの手法で、 書き込むデータが次に読むべきデータを上書きしない工夫も必用です。 実際に、同じファイルに対して、seek関数をつかわず、平行して「読み」と 「書き」をおこなった場合、結果はどうなるかわかりません。 バッファリングの状況によっては、1行めのデータが全行にコピーされる 場合があるかもしれませんし、ファイル内容が消える場合もあると思います。 #ところで、このBBSのスクリプト、バグってます(いまさら) #「修正」を実行すると、「><」が「<」に化けてしまいます| #あとで新しいスクリプトに入れ替えておかねば。></」が「<」に化けてしまいます|></」はともに「読み書き両用」となっているの>
[トップページに戻る]
管理人 :
キャメル