#! /usr/bin/perl use strict; use warnings; use Clone qw{ clone }; use Test::More tests => 2; my $input_hash_ref = { key1 => { some_field => 'value1', key => 'key1', alt_key => 'alt_key1' }, key2 => { some_field => 'value2', key => 'key2', alt_key => 'alt_key2' } }; my $expected_hash_ref={ alt_key1 => { some_field => 'value1', key => 'key1', alt_key => 'alt_key1' }, alt_key2 => { some_field => 'value2', key => 'key2', alt_key => 'alt_key2' }, }; my $output_hash_ref = { map { $input_hash_ref->{$_}{alt_key} => $input +_hash_ref->{$_} } keys %$input_hash_ref }; is_deeply($output_hash_ref, $expected_hash_ref, 'same inner hashes'); my $clone = clone($input_hash_ref); my $cloned_hash_ref = { map { $clone->{$_}{alt_key} => $clone->{$_} } keys %$clone }; is_deeply($cloned_hash_ref, $expected_hash_ref, 'cloned');
In reply to Re: How can one change the keys of a hash to an alternative set of keys?
by choroba
in thread How can one change the keys of a hash to an alternative set of keys?
by tkguifan
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |