demichi has asked for the wisdom of the Perl Monks concerning the following question:
I already had issues with this code and got help (see http://www.perlmonks.org/?node_id=1176056) but I get a new error now and hope it is ok to open a new post for this the new issue.
Perl Version 5.10.0. causes the error:
yyy.pl Type of arg 1 to keys must be hash (not array dereference) at yyy.pl l +ine 22, near "}) " Execution of yyy.pl aborted due to compilation errors.
Code:
use strict; use warnings; use Data::Dumper; my %REST_storage; my $json_decoded = { 'data' => [ { 'svpIp' => '10.1.1.1', 'model' => 'xyz', 'storageDeviceId' => '800000058068', 'serialNumber' => 58068 } ] }; print Dumper $json_decoded; for my $key1 (keys %$json_decoded) { print "key 1: $key1 + $json_decoded->{$key1}\n"; for my $key2 (keys @{ $json_decoded->{$key1} }) { print "key 2: $key2 + $json_decoded->{$key1}[$key +2]\n"; for my $key3 (keys %{ $json_decoded->{$key1}[$key2 +] }) { print "key 3: $key3 + $json_decoded->{$key1}[ +$key2]{$key3}\n"; $REST_storage{$key3} = $json_decoded->{$key1}[ +$key2]{$key3}; } } } print Dumper %REST_storage;
I undestand that I need hash instead of array for
for my $key2 (keys @{ $json_decoded->{$key1} }) but I do not know how to solve it.Thanks for help.
kind regards deMichi
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Type of arg 1 to keys must be hash (not array dereference) at
by haukex (Archbishop) on Nov 20, 2016 at 19:08 UTC | |
by demichi (Beadle) on Nov 20, 2016 at 19:14 UTC |