めっきり春だし今日からPerlを始めました - あきらめたらそこでテキオモですよ
- #!/usr/bin/perl を #!/usr/bin/env perl に変えた。perlが/usr/local/bin/等にあってもパスが通ってれば動きます。
- use warningsを追加(#!/usr/bin/env perl -wでもいいけど)
- HTML::Templateの代わりにTemplateを使用。(ただの好み)
- テンプレートをスクリプトに埋め込んだ(1個ぐらいなんだったら埋め込んじゃった方がよさげ)
- Perl::Tidy
- Perl::Critic
#!/usr/bin/env perl use strict; use warnings; use Template; use XML::TreePP; my $tpp = XML::TreePP->new; my $tree = $tpp->parsehttp( GET => 'http://tekiomo.s309.xrea.com/hatena/amazon_search/20080312.xml' ); my $template = Template->new; print "Content-Type: text/html\n\n"; $template->process( \*DATA, $tree ); __DATA__ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> [% item = ItemLookupResponse.Items.Item; link = "http://www.amazon.co.jp/exec/obidos/ASIN/" _ item.ASIN _ "/tekiomo-22/ref=nosim/"; title = item.ItemAttributes.Title | html; -%] <title>[% title %]</title> </head> <body> <h1><a href="[% link %]" title="[% title %]をAmazonで購入する">[% title %]</a></h1> <a href="[% link %]" title="[% title %]をAmazonで購入する"><img src="[% item.MediumImage.URL %]" alt="[% title %]" /></a> <dl> <dt>price</dt> <dd>[% item.OfferSummary.LowestNewPrice.FormattedPrice %]</dd> <dt>description</dt> <dd>[% item.EditorialReviews.EditorialReview.Content %]</dd> </dl> </body> </html>