OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

配列を変更しファイルに書き込むとなぜか古い配列も・・・

  • 暇なときにでも
  • 質問No.219921
  • 閲覧数34
  • ありがとう数0
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 31% (23/72)

WEB上のCGIで、
ファイル(file.dat)から配列@lineを読み込み、
@line=(01,02,03)
となっているときに、配列を操作して
@newline=(01,03)
とし、この @newline を

open(OUT,">file.dat");
print OUT @newline;
close(OUT);

と処理したところ、なぜか、その中身は 01 03 01 02 03
となってしまいます。つまり、新しいデータ以外に古いデータも書き込まれるのです。
いろいろ試しました。書き込みの前後で@newlineの中身を画面に表示するなどして
確かめましたが、そこには異常はありません。
また、いろいろ変えていくと、場合によっては、ファイルの中身は
01 03 00001 01 02 03
などという訳の分からないことになってしまいます。

追加書き込みの可能性はありません。
試しに @newline の中身を空にして書き込みしてみると、
この場合は ファイルの中身も空になっています。

つまり、 @newlineの中身が有るときは、
画面上には正しく表示されるのに、ファイルに書き込まれるときには、
古いデータ(場合によっては変なデータも)も一緒に出力されていると言うことです。

こういう現象の原因として何が考えられますでしょうか?
今まで、数々のファイル操作をしてきましたが、こういったことは
初めてです。

どうかご教授下さい。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全1件)

  • 回答No.1
レベル12

ベストアンサー率 0% (0/5)

管理者より: 同等の質問があるのでそちらをご参照下さい ...続きを読む
管理者より:
同等の質問があるのでそちらをご参照下さい
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ