電子書籍の厳選無料作品が豊富!

<?xml aaa=111 bbb=222 ccc=333>
<A>$var</A>
<B>$var</B>
<C>$var</C>
|
|
|
<Z>$var</Z>
<END></END>

上記のようなテキストファイルをperlプログラムで
作成したいときについて。
上記記述をプログラム内であらかじめ雛形として記述しておき
$varの変数の中身をかえることで違うテキストファイルが
出来上がることを達成するにはperlでどのような記述を
すればいいのでしょうか。

自分が調べた範囲では、"ヒアドキュメント"を
使えばいいのかなと考えていますが、もっと良い方法や
文法があれば御教授願います。

宜しくお願い致します。

A 回答 (3件)

おっしゃるとおり、プログラム中こういう箇所がそんなにない場合や、1つのファイルでプログラムを配布したい場合、ヒアドキュメントが簡単で良いと思います。


$var = "test";

print << "__EOM__";
<?xml aaa=111 bbb=222 ccc=333>
<A>$var</A>
<B>$var</B>
<C>$var</C>
|
|
|
<Z>$var</Z>
<END></END>
__EOM__


あるいは、複数のファイルになっても良いなら、テンプレートエンジンを使うという方法もあるかもしれません。構成やデザインを別ファイルで用意して、表示の時に組み合わせると、表示部分の変更のためにわざわざPerlのコードを見たり理解したりする必要がなくなりますが、そういうことをしたい場合はまずテンプレートエンジンを使います。テンプレートエンジンとしては、HTML::Templateというモジュールがよく使われるようですが、インストールされていないと使えないようなので、インストールが面倒くさかったらこういうのもあるようですね。
http://anond.hatelabo.jp/20071030153111
HTML::TemplateというとHTML専用のように見えますが、ぱっと見、何にでも使えるように見えました。
テンプレートエンジンに興味を持ったらModel View Controller (MVC)についてもちょっと調べてみるとよいでしょう。テンプレートエンジンを使っていると、表示するテキストの部分 (例えばHTMLなど) を書くときはそちらに集中できて良いですよ。
    • good
    • 0

このくらいなら s/// でもできるけどふつうはヒアドキュメントだろうなぁ.

    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2012/12/31 02:18

その通り、ヒアドキュメントがいいと思います。

    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2012/12/31 02:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!