http://qs321.pair.com?node_id=1219829


in reply to Re: Iterate JSON File
in thread Iterate JSON File

Thank you for you answer, actually it worked great

But now i want to only search for the "kind" tag and here is what i did:

for my $ob ( @{$decoded->{observations}} ) { for my $status ( @{$ob->{status}} ) { for my $kind (@{$status->{info}}){ for $elem ( sort ( keys ( %{$kind} ) ) ) { $final1 .= $kind->{$elem} .","; } } } }

I am getting an error that says that Cant use string (...) as an ARRAY ref while "stricts refs" in use at...

I think that is something related to deference, but i am not sure how to solve it, could you help me?

Regards

Replies are listed 'Best First'.
Re^3: Iterate JSON File
by AnomalousMonk (Archbishop) on Aug 03, 2018 at 15:27 UTC

    You seem to think that  $kind is a hash reference, but it isn't; it's a string, and strings (a.k.a. "symbolic references") can't be dereferenced under strict 'refs'. It's important to know the nature of the data you're dealing with. To visualize the type and value (update: and structure!) of data, use a module like Data::Dumper (which is core, so it should already be installed), or Data::Dump (which I like more, but which is not core). So maybe something like

    use Data::Dumper; ... for my $kind (@{$status->{info}}){ print Dumper $kind; ... }
    to get started. Once you know where you are, it will be easier to see the way forward.


    Give a man a fish:  <%-{-{-{-<

Re^3: Iterate JSON File
by VinsWorldcom (Prior) on Aug 03, 2018 at 17:03 UTC