In Quoting constructs§
See primary documentation in context for Escaping: q
'Very plain';q[This back\slash stays];q[This back\\slash stays]; # Identical outputq{This is not a closing curly brace → \}, but this is → };Q :q $There are no backslashes here, only lots of \$\$\$!$;'(Just kidding. There\'s no money in that string)';'No $interpolation {here}!';Q:q!Just a literal "\n" here!;
The q
form allows for escaping characters that would otherwise end the string using a backslash. The backslash itself can be escaped, too, as in the third example above. The usual form is '…'
or q
followed by a delimiter, but it's also available as an adverb on Q
, as in the fifth and last example above.
These examples produce:
Very plain This back\slash stays This back\slash stays This is not a closing curly brace → } but this is → There are no backslashes here, only lots of $$$! (Just kidding. There's no money in that string) No $interpolation {here}! Just a literal "\n" here
The \qq[...]
escape sequence enables qq
interpolation for a portion of the string. Using this escape sequence is handy when you have HTML markup in your strings, to avoid interpretation of angle brackets as hash keys:
my = 'foo';say '<code>$var</code> is <var>\qq[$var.uc()]</var>';# OUTPUT: «<code>$var</code> is <var>FOO</var>»