On 3/18/07, Darren Duncan wrote:
On Sun, 18 Mar 2007, Aaron Crane wrote:
 > That's easy even in Perl 5.  This modifies %hash in-place:
 >   my @values = delete @[EMAIL PROTECTED];
 >   @[EMAIL PROTECTED] = @values;
 [...]


If %hash contained keys a,b,c and @old_names was a and @new_names was b, then the above code would overwrite the existing b element, and leave 2 elements total. The operation I proposed needs to fail when one requests a colliding element, such as that situation; [...]

Yes, and more than that, deleting an old key and adding a new one isn't strictly the same as renaming a key. Consider what would happen if the value were a funny object that had side-effects every time you evaluated it.

As for the name, I don't think it's a problem for hashes and IOs to both have "rename" methods, but I do like Uri's "rekey" suggestion.


-David

Reply via email to