Note that you have two very similar statements in the OPed code that are doing very different things:
References be tricky.my %lag_detail = ...; # single instance of this hash in scope ... foreach my $line (...) ) { if (...) { if (...) ) { # push ref. to OLD instance of a hash to anon. array in an +other hash. push( @{ $self->{"lags"} }, \%lag_detail ); } # change certain values in hash, but hash LOCATION does not ch +ange. %lag_detail = ( "lagid" => $lag, "lagdesc" => $4, "operationst +ate" => $3, "adminstate" => $2 ); } } if (...) { # create NEW instance of a hash in independent scope. # this instance is TOTALLY INDEPENDENT of any other created in thi +s scope. my %port_detail = (...); # push ref. to NEW instance to anon. array in another hash. push @{ $lag_detail{"ports"} }, \%port_detail; } }
Give a man a fish: <%-{-{-{-<
In reply to Re: Push array to hash
by AnomalousMonk
in thread Push array to hash
by bartrad
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |