$ perl -Mstrict -Mwarnings -E ' my %original_hash = ( none => "abc", start => " abc", middle => "a b c", end => "abc ", both => " abc ", multi => " a b c ", ); say "Data with assorted spaces:"; say "$_\t|$original_hash{$_}|" for keys %original_hash; say "Data with no spaces at the end:"; my %no_spaces_at_end = %original_hash; $no_spaces_at_end{$_} =~ s/\s*$// for keys %no_spaces_at_end; say "$_\t|$no_spaces_at_end{$_}|" for keys %no_spaces_at_end; say "Data with no spaces at all:"; my %no_spaces_at_all = %original_hash; $no_spaces_at_all{$_} =~ y/ //d for keys %no_spaces_at_all; say "$_\t|$no_spaces_at_all{$_}|" for keys %no_spaces_at_all; ' Data with assorted spaces: middle |a b c| none |abc| both | abc | multi | a b c | end |abc | start | abc| Data with no spaces at the end: middle |a b c| none |abc| both | abc| multi | a b c| start | abc| end |abc| Data with no spaces at all: middle |abc| none |abc| both |abc| multi |abc| start |abc| end |abc|