Re: めっきり春だし今日からPerlを始めました

めっきり春だし今日から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>