http://www.perlmonks.org?node_id=1004433

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hello monks,

I have hash reference that holds some values. I would like to add new values to it from another hash reference. What's the best way to do it?

I'm using Perl 5 version 12.

Replies are listed 'Best First'.
Re: Append to hash reference
by tobyink (Canon) on Nov 18, 2012 at 16:20 UTC
    use Data::Dumper; my $ref1 = { foo => 1, bar => 2 }; my $ref2 = { baz => 3, quux => 4 }; # Assign to the ref1 hash the data in both hashes %$ref1 = (%$ref1, %$ref2); print Dumper $ref1;

    Or...

    use Data::Dumper; my $ref1 = { foo => 1, bar => 2 }; my $ref2 = { baz => 3, quux => 4 }; # Loop through the keys of the second hash, assigning values into the +first $ref1->{$_} = $ref2->{$_} for keys %$ref2; print Dumper $ref1;
    perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'

      Or...

      use Data::Dumper; my $ref1 = { foo => 1, bar => 2 }; my $ref2 = { baz => 3, quux => 4 }; # Use a hash slice to override values from the first hash with the sec +ond hash @$ref1{ keys %$ref2 } = values %$ref2;
Re: Append to hash reference
by Anonymous Monk on Nov 19, 2012 at 11:09 UTC

    Thanks everyone :)<?p>