{ my %translations = ( "\r" => "\\r", "\n" => "\\n", "'" => "\\'", "\\" => "\\\\", ); my $meta_chars_class = join '', map quotemeta, keys %translations; my $meta_chars_re = qr/([$meta_chars_class])/; sub text_to_jslit { my $text = shift; $text =~ s/$meta_chars_re/$translations{$1}/g; return "'$text'"; } }