Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: Concerning hash operations (appending, concatenating)

by japhy (Canon)
on Mar 24, 2005 at 16:53 UTC ( #442115=note: print w/replies, xml ) Need Help??

in reply to Concerning hash operations (appending, concatenating)

The problem is that Perl doesn't abstract the concept of appending for its various containers (scalars, arrays, and hashes), because Perl isn't inherently OO. I don't know if Perl 6 is going this route, where you could say:
$foo.append($bar); @foo.append(@bar); %foo.append(%bar);
And in the same vein, perhaps:
$foo.prepend($bar); @foo.prepend(@bar); %foo.prepend(%bar);
In recent Perls, we can write this as:
# append($x, $y) appends $y to $x # etc. # prepend() left as a simple exercise to the reader sub append (\[$@%]\[$@%]) { use Scalar::Util 'reftype'; use Carp qw( croak ); my ($l, $lt, $r, $rt) = map { $_, reftype($_) } @_; if ($lt eq $rt) { if ($lt eq 'SCALAR') { $$l .= $$r; } elsif ($lt eq 'ARRAY') { push @$l, @$r; } elsif ($lt eq 'HASH') { @$l{keys %$r} = values %$r; } else { croak "append($lt,$rt) not implemented"; } } else { croak "append($lt,$rt) not implemented"; } }
I'd expect friction coming from the "what does append/prepend mean for hashes?" faction, but I'd say it's a matter of precedence. Appending to a hash, when there are duplicate keys, uses the new values, and prepending would use the old values.
Jeff japhy Pinyan, P.L., P.M., P.O.D, X.S.: Perl, regex, and perl hacker
How can we ever be the sold short or the cheated, we who for every service have long ago been overpaid? ~~ Meister Eckhart

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://442115]
[Corion]: marto: Heh - I looked at the Intel things and they were all at EUR 80 or upwards, and that's a bit too much (or rather, for that money, I'd look for a NAS already)
[marto]: click bait marketing is making it harder to find stuff I can't remember based upon a few terms :(
[Corion]: :)

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (8)
As of 2018-01-17 15:21 GMT
Find Nodes?
    Voting Booth?
    How did you see in the new year?

    Results (201 votes). Check out past polls.