« サブルーチンを使う | メイン | ファイルに書き出す »

ファイルから読み込む

そりゃ、includeと同じ事くらいはCGIでもやってみないとね・・・。

「open(IN,"ファイル名")」だけど、ファイル名にはサーバーのルートからの指定は無視されるのかな?「/sig.txt」とやると何も表示されなかった・・・。

と思っていたけど、思いっきり勘違いをしていた。CGIを実行するときは、サーバー自身のディレクトリの参照が必要なのだった。だから、ホストのルートではなく、ルートディレクトリを参照していたみたい。ディレクトリの指定も気をつけないと、変なところにファイルを作りかねない・・・。

実は、「テスト1」(便宜上こう呼ぶ)の方だけど、<title>タグの方の変数が訂正してなかった。よく考えてみると、タイトルバーにはURLが表示されていたような気がする。サブルーチンでの引数の扱い方も気をつけよう。

ちなみに、エディタは「Perl Editor」を使っている。プログラミング用のエディタみたいで、サブルーチンや変数の一覧が表示されて、使用されている場所へジャンプする事もできる。エディタとしては少し能力不足だけど、他の人が作ったプログラムを見るのにはとても便利だ。ホイールも認識するのが気に入ってる。意外といいエディタだと思っても、ホイールに対応してないのが多いから、この手のソフトはバージョンアップに期待したい。作者のページは「川千原千」です。

・・・時は過ぎ・・・

「Perl Editor」も結構便利になってきた。漢字コードや改行の種類を気にしないで編集できるのが特にいい感じ。

ソースコード

#!/usr/bin/perl
 
@styles=("../../ipp.css","../test.css");
 
{
    &printHeader("テスト2");
    
    print "「sig.txt」を読み込みます。\n";
    print "<div class=test>";
    open(IN,"../../sig.txt");
    @sig1=<IN>;
    foreach $line(@sig1){
        print $line;
    }
    close(IN);    
    print "</div>";
    
    &printFooter;
    
    exit;
}
 
sub printHeader{
    print "Content-type: text/html\n\n";
    print "<html lang=ja><head><title>$_[0]</title>\n";
    foreach $st (@styles){
        print "<link rel=\"stylesheet\" type=\"text/css\" href=\"$st\">\n";
    }
    print "</head><body>\n";
    print "<div class=head>\n";
    print "<h1>$_[0]</h1><hr>\n";
    print "<a href=\"../../../index.htm\">Home</a> / <a href=\"../../\">Perl</a> / <a href=\"../\">TestCGI Index</a>\n";
    print "<hr></div>\n";
}
 
sub printFooter{
    print "<div class=foot>\n";
    print "<hr>\n";
    print "<a href=\"../../../index.htm\">Home</a> / <a href=\"../../\">Perl</a> / <a href=\"../\">TestCGI Index</a>\n";
    print "<hr>\n";
    open(IN,"../../sig.txt");
    while ($sig=<IN>){print $sig;}
    close(IN);
    print "</div>\n";
    print "</body></html>\n";
}

カテゴリ:

トラックバック

このエントリーのトラックバックURL:

この一覧は、次のエントリーを参照しています: ファイルから読み込む:

» リメイク:ファイルから読み込む 送信元 のぶろぐ
ファイルから読み込む (のぶろぐ) 書き直してみるシリーズ第2弾。 今回は、CG... [詳しくはこちら]

同一カテゴリの最新記事

最近のエントリー

Amazon.co.jp

Creative Commons License
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.
Powered by
Movable Type 3.36
Amazon.co.jp