Still when using "eval" and "$@" I get: "Can't use an undefined value as an ARRAY reference at geoTest.pl line 32." I suppose this refers to " @{ $response->{Point}{coordinates} }". The code looks like this:
#!/usr/bin/perl -w use strict; use locale; use warnings; #use diagnostics; use utf8; binmode(STDIN, "encoding(utf8)"); binmode(STDOUT, "encoding(utf8)"); binmode(STDERR, "encoding(utf8)"); use Geo::Coder::Google; my @place = ('Seattle', 'France', 'CorseMétéo', 'New Delhi'); my ($long, $lat); foreach my $place(@place){ my $geocoder = Geo::Coder::Google->new(apikey => '{MyAPIkeyHere}') +; my $response; until (defined $@ || defined $response){ eval{ $response = $geocoder->geocode(location => $place); } } if ($@){ print "Couldn't get location\n"; } ($long, $lat) = @{ $response->{Point}{coordinates} }; print "$long\n"; print "$lat\n"; }
In reply to Re^4: How to make Geo::Coder::Google run even if input location doesn't exist
by M15U
in thread How to make Geo::Coder::Google run even if input location doesn't exist
by M15U
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |