• ベストアンサー

ファイル操作

perlのファイル操作で、perlで出力したページと同一のものをhtmlで書き出したいのですが、perl上でそういったファイルを作るにはどうしたらいいですか?

  • Perl
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

ANo.1 です >わたしがやりたいのは、kent-webのsunbbsのようなものです そうなると(おそらくは)テンプレートファイルを読み込んで出力する途中で「所定の部分」でデータを(html形式で)書き出すことになると思います。 それでも基本(ブラウザに返す代わりにファイルハンドルを指定してファイルに書き出す)は同じです。

その他の回答 (1)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

ブラウザへの出力はどうやっていますか? おそらくはprintで行っていると思いますが、printはファイルハンドルを引数に取ります(省略するとSTDOUTになるのでブラウザに返される)。openしたファイルハンドルを指定すれば、ファイルに書き出されます。 以下の2行は同じ意味 print "Hello"; print STDOUT "Hello"; ファイルに出力 my $file = "output.txt"; open my $fh, '>', $file or die "Can't open \"$file\": $!"; print $fh "Hello"; printfを使っている部分があれば、sprint+printにすればいいんじゃないかと思います。

humu01jp
質問者

補足

わたしがやりたいのは、kent-webのsunbbsのようなものです

関連するQ&A

  • 教えて!ファイルの操作

    計算結果をテキストファイルへ書き込んで出力したいです。 一つのファイルへ出力の場合、ファイル名を指定(output.txt)して、出力は出来ますが、 ループ(i:1から10まで)を使って、ループの循環と共に、(output1.txtからoutput10.txt)のように出力したいです。 ファイル名は変わりますから、上記の操作はできますでしょうか。 教えてください! お願いします。

  • ファイルの読み込み操作のコーディングについて

    perlのファイル読み込み操作についての質問です #!/usr/local/bin/perl #ファイルの読み込み open(FILE,"<diary.txt"); $data = <FILE>; close(FILE); #サーバー出力 print <<END; Content-type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <title>ファイルの読み込み</title> </head> <body> <h5> <p>$data</p> </h5> </body> </html> END 次のように、perlのコードを書いて無料の CGIの使えるレンタルサーバーに 設置したところ、エラーが出てしまいます dairy.txtはこのファイルと同じディレクトリで パスも間違えてないです、いろいろ自分で調べてみたんですが どこが間違えているかわかりません よろしかったらどなたかperlに詳しい方がいらっしゃったら 間違えている箇所を教えていただけないでしょうか?

  • ファイル操作

    ファイル操作について、プログラムがうまくできないので教えていただきたいです。 作っているのは、txtファイルを読み込んで、置換の処理をした結果を、test.txtファイルに書き出したいのです。 質問なのですが、ここでtest.txtはあらかじめ作成しておかなければならないのでしょうか。自動で作成させる方法があれば、教えてください。 -----------------data.txt------------------------ rabbitうさぎappleりんごcoffeeコーヒー ------------------------------------------------ -----------------apple.pl----------------------- open(FILEHANDLE,"data.txt"); while($str=<FILEHANDLE>){ $str=~s/apple/青りんご/; } close(FILEHANDLE); open(FILEHANDLE,"test.txt"); print FILEHANDLE $str; close(FILEHANDLE); ------------------------------------------------- また、コマンドプロンプトの結果は次のとおりです。 C:\Perl>perl -cw apple.pl apple.pl syntax OK C:\Perl>perl apple.pl C:\Perl> Perl初心者なため、詳しく教えていただけると助かります。よろしくお願いします。

    • ベストアンサー
    • Perl
  • シェアポイント上にあるファイルを操作するには

    シェアポイントというものはよく知らないのですが シェアポイント上にあるファイルを バッチファイルでローカルにコピーしたり perlで操作したいのですが シェアポイント上にあるファイルは http://xxxx-xx.xx.~/test.htm というようにhttp://から始まるパスになっているため バッチファイルやperlからアクセスできないようなのですが シェアポイント上にあるファイル(test.htmなど)は バッチファイルやperlからどのように指定すれば よいのでしょうか。 ---test.bat-------------------------------------------------------------- copy "http://xxxx-xx.xx.~/test.htm" "c:\test\" --------------------------------------------------------------------------- では、 「'http:' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 というエラーになります。 ----test.pl------------------------------------------------------------- my $file='http://xxxx-xx.xx.~/test.htm'; if (-e $file) { print "存在します"; } else { print "存在しません"; # <== 常にこちらになります } -------------------------------------------------------------------

  • ファイル操作について、テキストファイルの書き換え

    よろしくお願いします。 データファイルAからデータを取得して、テキストファイルBの内容の一部を取得したデータで書き換えるという操作を行うプログラムを作りたいです。 具体的には、 データファイルA[A.txt]の中身 111 222 333 444 テキストファイルB[B.txt] 文字列1="123" 文字列2="234" 文字列3="345" 文字列4="456" というような二つのファイルを読み込み、B.txtの""で囲まれた部分を、A.txtで取得したデータで置き換えるような操作を行いたいのですが・・。 使用する言語としてはスクリプト言語であるperl、もしくはプログラム作成経験があるCを使用しようと思っています。(perlは未経験で入門書を読んでいるレベル)

    • ベストアンサー
    • Perl
  • javascriptでのファイル操作に関して

    javascriptでのファイル操作に関して var fs = new ActiveXObject("Scripting.FileSystemObject"); 上記のようなコードで 「オートメーション サーバーはオブジェクトを作成できません」 というエラーが出力されます。 これは、セキュリティなどの問題による物なのでしょうか? そもそも、javascriptでファイル操作を行うと言うのは あまりよろしい物では無いのでしょうか?

  • perlでCSVファイルのデータを操作したいのですが…

    perlでCSVファイルのデータを操作したいのですが… csvファイル内 あああ,1 いいい,3 ううう,2 といったようなファイルで 「あああ」に該当するデータがあった場合 1の部分を+1にしてCSVに戻すカウンター的な物を作りたいのですが なかなか思うように作れません。教えて頂けませんか。 すみませんが、どうぞ宜しくお願いいたします。

    • ベストアンサー
    • Perl
  • open関数のファイル操作について

    プログラミング経験ゼロで、CGI及びPerlを勉強しだした者です。 初歩的な質問で恐縮ですが、おわかりになる方ご教授願えますか。 open (ANSWER, ">>data.txt"); print ANSWER "$jikan,$data?n"; close (ANSWER); open関数の箇所を上の様に書いたのですが、自動生成されるはずのdata.txtファイルが見当たりません(CGI-Executablesフォルダ内) ではということで、data.txtファイルを作ってCGI-Executablesフォルダ内に置いてみたのですが、そちらにも書込みされませんでした。 ブラウザではフォーム入力の次に用意した「出力完了」のページに切り替わるのですが、やはり出力はされていないということでしょうか。 どのように修正すれば良いのか困ってます。よろしくお願いします。

    • ベストアンサー
    • Mac
  • file操作について

    読み込んだファイルが空のファイルだったとき、 つまり、ファイルは存在するがファイルは0バイトのモノを読み込んだとき エラーをだすのはどんな条件で分岐させれば良いでしょうか。 ちなみにperlです。

    • ベストアンサー
    • CGI
  • ファイル操作について

    例えば1つのディレクトリに10万個の画像があった場合に、同じディレクトリ内にperlで新しい画像を作ったり削除したりすると、処理速度が遅くなってしまいます。(作成や削除に時間がかかったりする) 違うディレクトリではスムーズに画像を作成したり、削除したりできるのですが、大量のファイルがあった場合は遅くなってしまうようです。 perlでファイルを作ったり削除するのに、ファイル数が多いからという理由で速度が遅くなるものでしょうか。 また、何か対策をご存知であれば教えていただけると嬉しく思います。 よろしくお願いします。