- 締切済み
perlについて質問です
perlについて質問です ファイルの先頭にデーターを書き込むにはどうしたらいいですか? 教えてください
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- taporu
- ベストアンサー率44% (46/104)
回答No.3
seekを使わない方法で open(DATA,">+ log.csv"); @DATA = <DATA>; print DATA "入れたい内容"; print DATA @DATA; close DATA;
- kmee
- ベストアンサー率55% (1857/3366)
回答No.2
seekはファイルの読み書き位置(ファイルポインタと呼びます)を任意の箇所に移動できますが、そこで書き込みを行うとその箇所に「上書き」されます。「挿入」ではありません。 先頭に挿入するなら 元のファイルの全内容をよみこみ→先頭に挿入分書き込み→先に読み込んだ内容を続けて書き込み とか 新規ファイルに挿入分を書き込み→続けて元のファイルの内容を書き込み→ファイル名の変更 とかになります。 なにやら、ログを書き込みたいようですが、後に追記するようにして、表示の際に逆順で表示させる、とかの方が楽かもしれません。
- asapinya
- ベストアンサー率36% (40/109)
回答No.1
seekを使います。 書式は seek ファイルハンドル, オフセット, 起点; なので 書き込む直前にでも seek FHogehoge ,0 ,0; としてみてはいかがでしょうか?
お礼
回答ありがとうございます
補足
回答ありがとうございます しかし、うまくできませんでした この様な感じでいいのでしょうか (関係のある部分だけ抜き出します) open(DATA,">> log.csv"); seek DATA,0,0; print DATA $name,","; print DATA $age,","; close DATA;