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


in reply to regarding google currency API

The URL you provided does not provide valid JSON, so you'll have trouble feeding it to any of the standard Perl JSON modules.

Ingy's recent work on JSONY seems to be able to handle it though:

use 5.010; use HTTP::Tiny; use JSONY v0.0.3 qw(decode_jsony); my $in_currency = 'GBP'; my $out_currency = 'USD'; # Construct URL from currency codes my $url = sprintf( 'http://www.google.com/ig/calculator?hl=en&q=1%s=?%s', $in_currency, $out_currency, ); # Fetch URL and deal with HTTP errors my $results = HTTP::Tiny->new->get($url); die $results->{reason} unless $results->{success}; # Decode cruddy broken JSON and deal with decoding errors my $data = decode_jsony($results->{content}); die $data->{error} if $data->{error}; # Print the result say $data->{rhs};
perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'