- 締切済み
ヒアドキュメントの外部化
perl勉強中です。ヒアドキュメント簡単でいいのですが、 CGIファイル内に書き込み変更することはあまりしたくないのですが、 よくスキン式にしているCGIを見かけますが、どのように外部HTMLファイルを読み込みしているのでしょうか? 下記ヒアドキュメント部分を外部ファイルから読み込みたいです。 なかなか詳しく書いてあるサイトがないので(探し方が下手なので)紹介していただけるサイトはないでしょうか? print <<EOM; <htmlタグ・・・・> EOM
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- chaimasuka
- ベストアンサー率57% (26/45)
Webサイトではないですが、 雑誌のバックナンバーを集めたCD-ROM を紹介します。 『WEB+DB PRESS総集編[Vol.1~36]』 PerlStyle という宮川達彦氏による連載コーナーがあります。 Vol.9 「どちらを選ぶ? テンプレートエンジン」で HTML::Template と Template-Toolkitの実践例をまじえて詳しく丁寧に解説されていますので、一読をオススメします。 この記事が書かれたのは5年ほど前ですが、内容は今でも使えるものです。
- venzou
- ベストアンサー率71% (311/435)
恐らくテンプレートの事でしょう。 もし違ったとしても、テンプレートを使う方法をお勧めします。 HTMLを完全に外部化できるので、HTML部分の編集が簡単です。 ヒアドキュメント等を使う方法より格段に効率が良くなります。 モジュールで提供されているので、「Perl HTML::Template」か 「Perl Template Toolkit」で、検索してみて下さい。 もし、自分で作るなら、HTMLファイルに何らかの記号を埋め込む。 Perlでは、HTMLファイルを開き、記号の部分を書き換える作業になります。 簡単な例: ----sample.html---- <html><head> <title>###TITLE###</title> </head><body> <h1>###HEADLINE###</h1> </body></html> ------------------- ----sample.cgi----- #!/usr/local/bin/perl %values = ( "###TITLE###" => "サンプル", "###HEADLINE###" => "簡単な置換のサンプルです。" ); open(IN,"sample.html"); foreach(<IN>){ while(($key,$value) = each(%values)){ $_ =~ s/$key/$value/g; } print $_; } close(IN); ------------------- かなり手抜きなプログラムですが、イメージとしてはこんな感じ。