#!/usr/bin/perl ########################################### # reviews # Mike Schilli, 2003 (m@perlmeister.com) ########################################### use warnings; use strict; use Net::Amazon; use Net::Amazon::Attribute::Review; use Text::Wrap; #use Log::Log4perl qw(:easy); #Log::Log4perl->easy_init({level => $DEBUG, layout => '%F{1}-%L: %m%n'}); my $ua = Net::Amazon->new( token => "MY_AMZN_TOKEN", ); my $resp = $ua->search( asin => ($ARGV[0] || "0471237124"), ); die "Request failed" unless $resp->is_success(); for my $property ($resp->properties()) { my $count = 0; print "Reviews for '", $property->title(), "'\n\n"; my $reviewset = $property->review_set(); print "Average Rating: ", $reviewset->average_customer_rating(), "\n"; print "Total Reviews: ", $reviewset->total_reviews(), "\n\n"; for my $review ($reviewset->reviews()) { print "=== Review #", ++$count, " ===\n"; print shape("Rating: ", $review->rating()), "\n"; print shape("Summary: ", $review->summary()), "\n"; print shape("Comment: ", $review->comment()), "\n"; print "\n"; } } ####################################### sub shape { ####################################### my($header, $text) = @_; my $result = join '', fill($header, " " x length($header), split /\n/, $text); return $result; }