Did you got json from another app? Try curl or wget same url, for me your
script return json.
On Jun 27, 2015 4:44 PM, "Pavel Serikov" <[email protected]> wrote:
> Hello dear colleagues,
>
> Can someone tell me why this script doesn't work?
>
> #!/usr/bin/env perl
> use Mojo::UserAgent;
> use feature 'say';
> use utf8;
>
> my $ua = Mojo::UserAgent->new;
> say $ua->get('
> http://geocode-maps.yandex.ru/1.x/?geocode=Moscow&format=json')->res->json
> ->{response}->{GeoObjectCollection}->{featureMember}->[0]->{GeoObject}->{
> metaDataProperty}->{GeocoderMetaData}->{AddressDetails}->{Country}->{
> CountryName};
>
> When I run script I got such error:
>
> pavel@U310T:~/projects/test_scripts$ ./test_geocode.pl
>> Can't use an undefined value as a HASH reference at ./test_geocode.pl
>> line 8.
>>
>
> And seems like problem isn't in JSON structure or wrong Yandex API string.
> When I modified script to:
>
> #!/usr/bin/env perl
> use Mojo::UserAgent;
> use Data::Dumper;
> use utf8;
> my $ua = Mojo::UserAgent->new;
> warn Dumper $ua->get('
> https://geocode-maps.yandex.ru/1.x/?geocode=Moscow&format=json')->res->
> json;
>
> I got:
>
> pavel@U310T:~/projects/test_scripts$ ./test_geocode.pl
>> $VAR1 = undef;
>>
>
> And as you can make sure API is working -
> https://geocode-maps.yandex.ru/1.x/?geocode=Moscow&format=json
>
> My Mojo version is latest
>
> sudo cpan -D Mojolicious
>> Loading internal null logger. Install Log::Log4perl for logging messages
>> Reading '/home/pavel/.cpan/Metadata'
>> Database was generated on Sat, 27 Jun 2015 04:41:02 GMT
>> Mojolicious
>> -------------------------------------------------------------------------
>> (no description)
>> D/DB/DBOOK/Mojolicious-6.12.tar.gz
>> /usr/local/share/perl/5.18.2/Mojolicious.pm
>> Installed: 6.12
>> CPAN: 6.12 up to date
>> Sebastian Riedel (SRI)
>> [email protected]
>>
>
> I'm quite confused, cause recently this script worked... I didn't anything
> except updating Mojolicious to latest version.
>
> Any ideas?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Mojolicious" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/mojolicious.
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups
"Mojolicious" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/mojolicious.
For more options, visit https://groups.google.com/d/optout.