perl - How to dereference entries in a hash of arrays of hashes -


i have data structure built so:-

$icvdwkey = "($llx $lly) ($urx $ury)"; ... push @{$icvdwstats{$icvdwkey}}, {     icvdensity=>$density,     icvlayerarea=>$layerarea,     icvwindowarea=>$windowarea }; 

i can dereference contents so...

foreach $icvdwkey (@allicvdwcoords) {     foreach (@{$icvdwstats{$icvdwkey}}) {         $icvdensity = $_->{icvdensity};         $icvlayerarea = $_->{icvlayerarea};         $icvwindowarea = $_->{icvwindowarea};         ...      }  } 

...and good. however, running problems when data structure built same way , need check contents when looping through original data structure, above. here example...

foreach $icvdwkey (@allicvdwcoords) {     foreach (@{$icvdwstats{$icvdwkey}}) {         $icvdensity = $_->{icvdensity};         $icvlayerarea = $_->{icvlayerarea};         $icvwindowarea = $_->{icvwindowarea};         ...         if (exists ($icc2dwstats{$icvdwkey})) {              $icc2density = $_->{icc2density};              $icc2layerarea = $_->{icc2layerarea};              $icc2windowarea = $_->{icc2windowarea};              ...         }     } } 

i know if exists $icvdwkey matching working properly, cannot cleanly dereference contents of icc2dwstats hash data. proper retrieve icc2* data when $icvdwkey keys match between 2 data structures? sure $_ in icc2* references, not know should used instead.

thanks!

instead of using $_ represents structure other $icc2dwstats hashref want, need explicitly specify hash , key of actual hasn want extract from:

for $icvdwkey (@allicvdwcoords) {     (@{$icvdwstats{$icvdwkey}}) {         $icvdensity = $_->{icvdensity};         $icvlayerarea = $_->{icvlayerarea};         $icvwindowarea = $_->{icvwindowarea};         ...         if (exists ($icc2dwstats{$icvdwkey})) {              $icc2density = $icc2dwstats->{$icvdwkey}{icc2density};              $icc2layerarea = $icc2dwstats->{$icvdwkey}{icc2layerarea};              $icc2windowarea = $icc2dwstats->{$icvdwkey}{icc2windowarea};              ...         }     } } 

note should using use strict; , use warnings;.


Comments

Popular posts from this blog

networking - Vagrant-provisioned VirtualBox VM is not reachable from Ubuntu host -

c# - ASP.NET Core - There is already an object named 'AspNetRoles' in the database -

ruby on rails - ArgumentError: Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true -