my %escaped = ( "\n" => '\n', "\r" => '\r', " " => '\s', # ... ); my $string = "1\r\n 2 \n"; while ($string =~ /(.)/sg) { my $ch = $1; $ch = $escaped{$ch} if exists $escaped{$ch}; print "Encountered character: $ch\n"; }