• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイルに書き込まれない)

ファイル書き込みが反映されない問題について

このQ&Aのポイント
  • ファイルa.txtにデータを書き込んでも反映されない問題について質問します。
  • Perlでファイル書き込みを行ったが反映されない問題を解決する方法を教えてください。
  • 読み込みは正常に動作しているが、ファイル書き込みが反映されない問題に関してアドバイスをいただきたいです。

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

  • ベストアンサー
  • rafysta
  • ベストアンサー率45% (24/53)
回答No.1

ファイルa.txtのパーミッションの問題では? open (OUT, ">> a.txt"); の部分を open (OUT, ">> a.txt") or die "cannot write a.txt: $!"; とするなどして、ファイルのオープンに成功しているか確認した方がいいかも。

manafi_lv100
質問者

お礼

ご回答ありがとうございます。 openを一度rafystaさんの物にしてみたら、 正常に書き込みが出来ました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Perlでテキストファイル読み込み

    基本的な質問ですみません。 サーバ上のテキストファイルを読み込んで ローカルのテキストファイルに書き込むというだけなのですが 何度やってもできません。 以下プログラムですが #!usr/bin/perl open(IN,"http://*****/***/***.txt"); $file = <IN>; close(IN); open(OUT,"> a.txt"); print(OUT "$file"); close(OUT); サーバのアドレスは、URLうってみて見れたのでhttp://***(以下略)であってると思います。 サーバのテキストにはchmodで777と権限を与えました。 プログラムに問題あるのでしょうか。 この場合考えられる原因を教えてください。

    • ベストアンサー
    • Perl
  • print文で「

    いつもお世話になっております。 早速ではありますが、 タイトル通り、print文で「""(ダブルクォーテーション)」を出力させたいです。 例えば、 open(OUT, ">>TEST.txt"); print OUT "123:456:789\n"; close(OUT); とある時、「456」だけに「""(ダブルクォーテーション)」をつけて「"456"」として出力・・・、 つまり、TEST.txt の最後の行に、 123:"456":789 と出力させるにはどうしたらよいでしょうか。 サーバー・・・HP-UX CGI開発言語・・・Perl5 開発端末・・・windows2000(Tera Term 使用) 以上、ご教授の程よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • テキストファイル内の変数を展開して出力したい

    テキストファイル内に変数を書いておいて、出力時に その変数を展開させる方法を教えてください。 具体的には、[test.txt]を[出力]のようにしたいのです。 ためしに[test.cgi]を作ったのですが[test.txt]の内容がそのまま出てきてしまいました。 [test2.cgi]ができるなら、[test.cgi]でもできると思っていたのですが… [test.cgi] #!/usr/local/bin/perl $moji="OK"; print "Content-type: text/html\n\n"; open(IN, 'test.txt'); while (<IN>) { print "$_"; } close(IN); exit; [test2.cgi] #!/usr/local/bin/perl $moji="OK"; $naka="<HTML><BODY>$moji</BODY></HTML>"; print "Content-type: text/html\n\n"; print "$naka"; } close(IN); exit; [test.txt] <HTML><BODY>$moji</BODY></HTML> [出力] <HTML><BODY>OK</BODY></HTML>

    • ベストアンサー
    • Perl
  • ファイルの入出力が出来ません。

    perlの初心者です。 cgiを作ろうとしています。 標準出力には出力できても、ファイルの入出力が出来ません。 #!/usr/bin/perl open(OUT,">>test"); print OUT "test data"; close (OUT); と実行しても、エラーもでないのですが、ファイルも作られず、書き込みもされません。 しかし、コマンド名'test'としてセーブして、プロンプトから'perl test'とするとファイルに書き込みされるようです。 perlの設定の問題なのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • perlでCSV形式ファイルのアップロード

    本日、同じ質問をしたものです。 前回の問題は解決したのですが、ファイルがアップロードできないで悩んでします。 CGIのプログラムは以下のソースです。 #! c:/perl/bin/perl use CGI; # CGIヘッダーの出力 print "Content-type: text/html\n\n"; my ($query,$fileName); $query = new CGI; $fileName = $query->param('fileName'); open(OUT, ">./a.csv"); binmode(OUT); while(read($fileName,$buffer,1024)) { print OUT $buffer; } close(OUT); close($fileName); #ファイルハンドルをcloseしています。 exit ; ファイルは、作られるのですが、中身が書き込まれません。 どなたか教えてください。 お願いします。

    • ベストアンサー
    • Perl
  • 初心者で、困っています。(文字化け)

    すみません、すごく初歩的なことで困っています。 本を見ながら、下のようなものを書いたのですが、 出力すると、文字化けをしてしまいます。ウィンドウズの環境で、Perlは5.8を使い、読み込みのテキストはUnicodeです。どのようにすれば、文字化けをしないで、読み込めるのでしょうか。 open ( IN , "LBa3_00028.txt" ) or die; open ( out , ">out.txt" ); while ( $line = <IN>){ print out "$line\n"; } close(out); close(IN);

    • ベストアンサー
    • Perl
  • HTML表示での実行でファイルが書き込みモードで開けない

    perlの勉強をしていて困っています。 perlをHTML表示で実行した時にファイルが書き込みモードで開けません。コマンドラインで実行すると開いて書き込まれます。よってファイルの書き込み禁止などでは無いようです。以下がソースです。 #!/Perl/bin/perl $|=1; print "content-type: text/html; charset=Shift_JIS\n\n"; open(OUT, ">other.html") or die "not open"; print OUT "test"; close(OUT); 読み込みモードでは成功します。フリーのCGIなども見ましたが通常は出来るはずだと思うのですが・・・。 ちなみにperlはApache2.0で動作させています。こちらの設定の問題でしょうか?

    • ベストアンサー
    • Perl
  • 1つのプログラム内で"html出力"の部分とそれ以外の処理部分の共存

    1つのプログラム内で"html出力"の部分とそれ以外の処理部分の共存 こんにちわ。 ・リロードイベントをキャッチしたhtmlからリクエストをcgiが受信(html出力部分) ・カウンタ値を保存しているtxtファイル(data.txt)から現在の値を読み出す ・+1してファイルにまた値を書き込む ・その値をhtmlにも返して表示させる(html出力部分) といった具合のプログラムを作りたいのですが、html出力をしている部分とそのほかの処理を同じcgiファイルに入れているとうまく動かないみたいです。 以下が問題のファイルの中身です。 (test.cgi) #!/usr/bin/perl open(IN, "../html/2010/data.txt"); my $counter=<IN>; close(IN); $counter++; open(OUT,"> ../html/2010/data.txt"); print (OUT "$counter\n"); close(OUT); print "Content-type: text/html\n"; print "\n"; read(STDIN, my $data, $ENV{'CONTENT_LENGTH'}); print "$counter\n"; ページをリロードして処理を確認するとdata.txt内の値は変わらないまま、それに1を足しただけの値が表示されます。しかしdata.txtの中身が0でサーバのコマンドラインで perl test.cgi といった風に動かしてみると Content-type: text/html 1 といった感じに今度はちゃんとdata.txt内の値もちゃんと書き換えられて出てきます。 html出力部分とdata.txtの書き換え部分は分離させたほうがよいのでしょうか?分離しなければいけない場合は互いのデータの受け渡し方法もご教授お願いします。

    • ベストアンサー
    • CGI
  • cgiを使ってサーバ上にファイルを作成する方法

    無料のサーバスペースを使用してHPを作っています。 perlを使って自作したcgiをwindowsのコマンドラインで実行すると open(F,">oceco.txt"); print F "oceco\n"; close(F); この記述でファイルが新規作成されるのに、サーバー上のcgiで実行するとファイルが新規作成されません。 しかし、空のoceco.txtをFTPでサーバーに送って属性変更を済ませ、cgiを実行するとoceco.txtの中身が変更されます。 同じサーバでフリーの掲示板cgiを使用していますが、ログファイルを新規作成できています。 そこで質問です。 cgiをつかってサーバ上でファイルを新規作成する方法を教えてください。

    • ベストアンサー
    • Perl
  • ファイルの3行目までを出力したい

    Perl初心者です。 test.txtというファイルがあって、その中の1行目から3行目までを 出力したい場合はどうしたらいいでしょうか? open(FILE,"test.txt") || die "Open Error.\n"; @data = <FILE>; close(FILE); foreach (@data) { print $_; } これだと、ファイルの中身が全て出力されてしまいます。

    • ベストアンサー
    • Perl
プリンター印刷ができない
このQ&Aのポイント
  • MacOSと連携して使用している【DCP-J978N】プリンターの印刷が突然できなくなりました。
  • お使いの環境はMacOSで、無線LANで接続されています。関連するソフト・アプリはありません。
  • アナログ回線を使用しています。
回答を見る

専門家に質問してみよう