Say the hash key is BLAH01-A05AFGH. I want the hash key to be BLAH01-A
perl -e'use Data::Dumper; %hash=("BLAH01-A05AFGH0"=>17); for(keys %hash) { if (m/(BLAH\d{2}-\w)/) { $hash{$1} = delete $hash{$_} } }; print Dumper \%hash'
$VAR1 = { 'BLAH01-A' => 17 };
NB there's no check if the new key already exists... it will be overwritten if it does.
Cheers, Sören
Créateur des bugs mobiles - let loose once, run everywhere.
(hooked on the Perl Programming language)
In reply to Re: Replace a hash key if it matches a regex
by Happy-the-monk
in thread Replace a hash key if it matches a regex
by walkingthecow
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |