• ベストアンサー

テキストへの出力

ある本を買って、それに載っていたプログラムを打ち込みました。エラーは出ませんが上手いこと実行できません。自分で分る範囲で調べた結果、ファイルヘの出力が出来てないが分りました。このプログラムでは open(OUT,">>bbs.txt"); print OUT $line; close(OUT); となっています。$lineには日付が入っています。 このプログラム直前に print $line; と加えると正確に表示されます。 分るかたいましたら教えて下さい。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hira6bg
  • ベストアンサー率61% (8/13)
回答No.2

No.1です。 先ほどの回答、撤回します。ごめんなさい。 質問の際にはなるべくOSやPerlのバージョン等の環境の情報もいただけるとありがたいです。 本来はご質問の下記ソースでファイルへ出力されるはずです。 1 open(OUT,">>bbs.txt"); 2 print OUT $line; 3 close(OUT); 上記ソースを実行すると ファイルはPerlを実行したディレクトリと同じディレクトリにbbs.txtが作成(既に作成されているときは追記)されているはずです。 書き込みファイル名をbbs.txtではなく、別の名前で実行して確認してはいかがでしょうか? また、ファイルが作成できないときのエラー表示として、1行目をこのように書いてみてください。 ================================================= open(OUT,">>bbs.txt") || die "File Open Error!!"; ================================================= 出力ファイルが作成、または書き込みできない場合は"File Open Error!!"と表示されます。 この場合、出力ファイルを作成するディレクトリのパーミッションが読み取り専用となっている可能性があります。

mizumaki22
質問者

お礼

Linux Fedora Core3 です。 perlのバージョンはperl-5.8.5-9です。 ファイル名を変更したら実行されました! ありがとうございました!

その他の回答 (1)

  • hira6bg
  • ベストアンサー率61% (8/13)
回答No.1

2行目を ==================== print OUT "$line"; ==================== 1 open(OUT,">>bbs.txt"); 2 print OUT $line; 3 close(OUT); ではだめですか? ちなみに改行をいれるなら ==================== print OUT "$line\n"; ==================== です。

mizumaki22
質問者

補足

ご回答ありがとうございます。 2行目を print OUT "$line"; としてみましたがまだテキストには出力されませんでした。他に考えられる要因はないでしょうか?

関連するQ&A