in reply to altering HoH keys
#! perl -slw use strict; use Data::Dumper; my $href = { '1' => { key1 => 'val1' }, '1.0' => { key2 => 'val2' }, '0001' => { key3 => 'val3' }, '2' => { key1 => 'val1' }, '0002' => { key2 => 'val2' }, '2.1' => { key1 => 'val1' }, '2.10' => { key2 => 'val2' }, '2.1 ' => { key3 => 'val3' }, ' 2.1' => { key4 => 'val4' }, fred => { key1 => 'val1' }, ' fred'=> { key2 => 'val2' }, 'fred '=> { key3 => 'val3' }, }; sub trim{ $_[0] =~ s[^\s+|\s+$][]g; $_[0] += 0 if $_[0] =~ m[^[\d|.]+$]; $_[0]; } my( %new, $k, $v ); @{ $new{ trim $k } }{ keys %$v } = ( values %$v ) while ( $k, $v ) = each %$href; print Dumper \%new; __END__ P:\test>321690 $VAR1 = { '1' => { 'key2' => 'val2', 'key1' => 'val1', 'key3' => 'val3' }, '2' => { 'key2' => 'val2', 'key1' => 'val1' }, '2.1' => { 'key2' => 'val2', 'key1' => 'val1', 'key4' => 'val4', 'key3' => 'val3' }, 'fred' => { 'key2' => 'val2', 'key1' => 'val1', 'key3' => 'val3' } };
|
|---|