in reply to Re^4: What is the easiest way to merge two hashes?
in thread What is the easiest way to merge two hashes?
In may solution it is enough to query the keys of both hashes without ever creating the merged hash itself.
Sorry, but that is rubbish. This code:
my $joined_keys = [ keys( %{ { map { $_=>undef } keys( %{$hash1} ) , keys( %{$hash2} ) +} } ) ]; # This.....^.......................................................... +..^ *is a hash* built from #...............................^^^^^^^^^^^^^^^^^...^^^^^^^^^^^^^^ #...the combined (potentially huge) lists of the keys from both hashes + PLUS #.....................^^^^^...undef as the value for each key in the c +ombined list...
And is functionally and memory consumption-wise, nearly identical to this code:
sub mergedHashKeys{ [ keys %{ { %{ $_[0] }, %{ $_[1] } + } } ] };;
And, your code creates *two (potentially) huge lists*; one going into the map and one coming out that is twice as long; from which the combined hash is constructed.
Any memory savings will be minimal.
|
|---|