in reply to Adding a new key-value pair to a nested anonymous hash
use strict; use warnings; use Data::Dump qw(pp); my @lecshun; push @lecshun, ["nameB" , {package=>"gemB", index=> 50}]; push @lecshun, ["nameA" , {package=>"gem", index=>44}]; pp \@lecshun; #[ # ["nameB", { index => 50, package => "gemB" }], # ["nameA", { index => 44, package => "gem" }], #] # add a key/value pair to anon hash associated with # name of 'nameA' foreach my $index (0..$#lecshun) { my ($name,$href) = @{$lecshun[$index]}; if ($name eq 'nameA') { $href->{ 'newkey' } = 'NewValue'; #Just add new key/value to the + href! } } pp \@lecshun; #[ # ["nameB", { index => 50, package => "gemB" }], # [ # "nameA", # { index => 44, newkey => "NewValue", package => "gem" }, # ], #] ################################ # Don't need to use indices, this is the same use strict; use warnings; use Data::Dump qw(pp); my @lecshun; push @lecshun, ["nameB" , {package=>"gemB", index=> 50}]; push @lecshun, ["nameA" , {package=>"gem", index=>44}]; pp \@lecshun; #[ # ["nameB", { index => 50, package => "gemB" }], # ["nameA", { index => 44, package => "gem" }], #] # add a key/value pair to anon hash associated with # name of 'nameA' foreach my $ref (@lecshun) { my ($name,$href) = @$ref; if ($name eq 'nameA') { $href->{ 'newkey' } = 'NewValue'; } } pp \@lecshun; #[ # ["nameB", { index => 50, package => "gemB" }], # [ # "nameA", # { index => 44, newkey => "NewValue", package => "gem" }, # ], #]
|
|---|