This looks like the problem to me as well. (I'm a little late getting my answer in.) This version of your original code works for me:
#!/usr/bin/perl
use strict;
my %hash = ( ' Key1', ' Value1');
sub doStringTidy {
my $string=shift;
my $string =lc($string);
$string=~s/^\s+//;
$string=~s/\s+$//;
return $string;
}
sub doHashTidy {
my $hash=shift;
foreach my $k (keys %{$hash}) {
my $kv=doStringTidy($k);
my $vv=doStringTidy($hash->{$k});
delete $hash->{$k};
$hash->{$kv} = $vv;
}
}
doHashTidy(\%hash);
foreach my $key ( keys %hash )
{
print "key:$key, value:$hash{$key}\n";
}
which provides the following output:
key:key1, value:value1