- ベストアンサー
Perl - ファイルのオープン
Perl でカウンタを作っているんですが、 mkdir($year, 0755) などをした後に、 open(F, "+< ./$year/$mon/$day.log") $count = <F> $count ++; print F $count; のようにしているのですが、カウンタファイルが新規作成されませんし、存在しても更新されません。 どうすればいいでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
上記のソースは存在すれば値が更新されるはずです。 具体的にはお尻に"1"が延々とついていくはずです。 主に考えられる原因は以下の通りでしょう。 ・ディレクトリのパーミッションが間違っている (755だとオーナー以外書き込めない) ・ディレクトリが存在しない ($yearディレクトリ内に$monのディレクトリは事前にちゃんと作ってますか?) ・追記モード(+<)ではファイルの新規作成は出来ない (読み出し、追記を両方行い、さらに新規作成するためには"+>>"を使う。ただし適切にseekを行う必要がある) ファイルから数値を読み出す前と書き込む前に seek(F,0,0); を入れてファイルポインタのオフセットを先頭に戻してください。
お礼
ありがとうございます。 おかけでできるようになりました。 (^ ^)