$ perl -Mstrict -Mwarnings -E 'my ($u, $p) = (q{W$X}, q{Y@Z}); say for $u, $p' W$X Y@Z #### $ perl -Mstrict -Mwarnings -E 'my ($u, $p) = (qq{W$X}, qq{Y@Z}); say for $u, $p' Possible unintended interpolation of @Z in string at -e line 1. Global symbol "$X" requires explicit package name (did you forget to declare "my $X"?) at -e line 1. Global symbol "@Z" requires explicit package name (did you forget to declare "my @Z"?) at -e line 1. Execution of -e aborted due to compilation errors. #### $ perl -Mstrict -Mwarnings -E 'use URI::Escape; my ($u, $p) = (q{W$X}, q{Y@Z}); say for uri_escape($u), uri_escape($p)' W%24X Y%40Z