http://www.perlmonks.org?node_id=934387


in reply to Re^2: Anyone Have Perl Code for New Amazon API? [SOLVED]
in thread Anyone Have Perl Code for New Amazon API? [SOLVED]

Your doubt stings. I realized that XML::LibXML will now do URI fetching itself so we can leave out dealing with the user agent stuff.

#!/usr/bin/env perl use strict; use warnings; use URI::Amazon::APA; use XML::LibXML; use XML::LibXML::XPathContext; my $key = $ENV{AWS_KEY} || "YOURKEYHERE"; my $secret = $ENV{AWS_SECRET} || "youforgottoputyourownsecretin"; my $asscociate = $ENV{AWS_ASSOC} || "this-isnt-it-20"; my $title = shift || die "You must provide a search string"; my $mode = shift || die "You must provide a mode, e.g., Books"; my $uri = URI::Amazon::APA->new("http://ecs.amazonaws.com/onca/xml"); $uri->query_form( Service => "AWSECommerceService", Operation => "ItemSearch", ResponseGroup => "Large", AssociateTag => $asscociate, Title => $title, SearchIndex => $mode, ); $uri->sign( key => $key, secret => $secret ); my $doc = XML::LibXML->load_xml( location => $uri ); my $xc = XML::LibXML::XPathContext->new($doc); $xc->registerNs('amzn', $doc->getDocumentElement->namespaceURI); if ( my @error = $xc->findnodes('//amzn:Error') ) { die join("\n", map { $_->textContent } @error ), $/; } for my $item ( $xc->findnodes('//amzn:ItemAttributes/amzn:Title/text() +') ) { print $item->nodeValue, $/; } # print $doc->serialize(1);

Set-up ENV or add your info to the script and then–

node-934250.pl perl Books Learning Perl Programming Perl (3rd Edition) Learning Perl, 5th Edition Perl Cookbook, Second Edition Perl Pocket Reference Regular Expression Pocket Reference: Regular Expressions for Perl, Rub +y, PHP, Python, C, Java and .NET (Pocket Reference (O'Reilly)) Intermediate Perl Modern Perl Beginning Perl for Bioinformatics Automating System Administration with Perl: Tools to Make You More Eff +icient