use Tie::RegexpHash; my %sr; tie %sr, 'Tie::RegexpHash'; $sr{qr/\bh+(a|@)+t+e+\b/i} = 'love'; $sr{qr/\b(u|you|eww)\b/i} = 'you'; # - - - - - - - - - - - - - - - - -- - - - -- - - - - $_ = "I hate you i HAte u i HH\@\@\@TTeE eww i HA\@AaaTTee u I HATE YOU!\n"; print; my $s = join("|", keys%sr); s/($s)/$sr{$1}/g; print; __END__ I hate you i HAte u i HH@@@TTeE eww i HA@AaaTTee u I HATE YOU! I love you i love you i love you i love you I love you!