#! 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'
}
};
|