NAME
Syntax::Keyword::RawQuote - A raw quote operator for Perl
SYNOPSIS
use Syntax::Keyword::RawQuote;
say r`I keep all of my files in \\yourserver\private`;
use Syntax::Keyword::RawQuote -as => "qraw";
say qraw[Maybe the \r\ keyword is too risky?];
DESCRIPTION
This library provides an absolutely uninterpreted (raw) quote operator for Perl, as seen in some other programming languages. While Perl single-quoted strings are nearly uninterpreted, they still treat the sequences \'
and \\
specially, allowing a single quote to be included in the string. The q
operator behaves similarly, allowing the closing delimiter to be backslashed, and treating \\
as a single backslash. A raw string, in contrast, treats every character literally, and ends at the first occurrence of the closing delimiter, no matter what.
WARNING
This is beta software that mucks about with the perl internals. Do not use it for anything too important.
SYNTAX
By default, the raw quote operator will be installed as r
in the lexical scope where this module is imported. If that name is inconvenient, you can choose another one by providing the -as
option in the use
statement.
The operator behaves like other quote-like operators (see "Quote and Quote-like Operators" in perlop). The first non-whitespace character after the operator is taken as the opening delimiter. If the opening delimiter is one of the ASCII left bracket characters (one of ( [ < {
), then the closing delimiter is the matching right bracket (from ) ] > }
), otherwise it is the same as the opening delimiter. This choice of delimiters allows you to choose a character that won't appear inside the string.
Since editors' syntax highlighting features will probably not recognize the existence of this module, you may want to use an existing quote character to avoid confusing them. r""
and r''
are obvious choices, but r``
(similar to Go) has the advantage that backticks hardly ever occur inside of quoted strings, and it is visually distinct.
METHODS
import
Enables the raw quote keyword in the current lexical scope when called during compilation (use Syntax::Feature::RawQuote
). If the -as
keyword argument is provided, it will be used as the keyword name, otherwise "r"
is used.
unimport
Disables the raw quote keyword in the current lexical scope when called during compilation (no Syntax::Feature::RawQuote
). If the -as
keyword is provided, disables that keyword specifically; otherwise, all keywords installed will be disabled.
syntax.pm SUPPORT
A module Syntax::Feature::RawQuote is also provided, if you prefer the form use syntax 'raw_quote'
. Provides all of the same features and options, except that it is not possible to no syntax raw_quote => { -as => 'foo' }
.
AUTHOR
Andrew Rodland <arodland@cpan.org>
LICENSE
Copyright (c) Andrew Rodland.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.