use strict; use Template; use SOAP::Lite; use Data::Dumper; my $soap = SOAP::Lite ->uri('http://www.allconsuming.net/AllConsumingAPI') ->proxy('http://www.allconsuming.net/soap.cgi') ->on_fault( sub { my($soap, $res) = @_; die ref $res ? $res->faultstring : $soap->transport->status; } ); my $api = $soap -> call(new => "") -> result; my $reading = $soap ->GetCurrentlyReadingList($api, 'kellan')->result; #print Dumper($reading); my $template = Template->new( INCLUDE_PATH => './templates', FILTERS => { 'last_name' => sub { my $author = shift; $author =~ m/(\w+)$/; return $1; } } ); my $tmpl = 'allconsuming.tmpl'; my $out = 'reading_list.htmlf'; $template->process($tmpl, $reading, $out) or die $template->error();