Perlでは、ほとんどすべての種類の奇妙な文字列を引用するのは簡単です。
my $url = q{http://my.url.com/any/arbitrary/path/in/the/url.html};
実際、Perlのさまざまな引用メカニズムは非常に興味深いものです。Perlの正規表現のような引用メカニズムを使用すると、区切り文字を指定して、あらゆるものを引用できます。#、/などのほとんどすべての特殊文字、または()、[]、または{}などのオープン/クローズ文字を使用できます。例:
my $var = q#some string where the pound is the final escape.#;
my $var2 = q{A more pleasant way of escaping.};
my $var3 = q(Others prefer parens as the quote mechanism.);
引用メカニズム:
q:リテラル引用; エスケープする必要がある文字のみが終了文字です。qq:解釈された引用; 変数とエスケープ文字を処理します。引用する必要がある文字列に最適です。
my $var4 = qq{This "$mechanism" is broken. Please inform "$user" at "$email" about it.};
qx:qqと同じように機能しますが、システムコマンドとして非対話的に実行します。標準出力から生成されたすべてのテキストを返します。(リダイレクションは、OSでサポートされている場合も出てきます)逆引用符( `文字)も使用されます。
my $output = qx{type "$path"}; # get just the output
my $moreout = qx{type "$path" 2>&1}; # get stuff on stderr too
qr:qqと同様に解釈しますが、正規表現としてコンパイルします。正規表現のさまざまなオプションでも機能します。これで、正規表現を変数として渡すことができます。
sub MyRegexCheck {
my ($string, $regex) = @_;
if ($string)
{
return ($string =~ $regex);
}
return; # returns 'null' or 'empty' in every context
}
my $regex = qr{http://[\w]\.com/([\w]+/)+};
@results = MyRegexCheck(q{http://myurl.com/subpath1/subpath2/}, $regex);
qw:非常に便利な引用演算子。空白で区切られた単語の引用されたセットをリストに変換します。単体テストでデータを入力するのに最適です。
my @allowed = qw(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z { });
my @badwords = qw(WORD1 word2 word3 word4);
my @numbers = qw(one two three four 5 six seven); # works with numbers too
my @list = ('string with space', qw(eight nine), "a $var"); # works in other lists
my $arrayref = [ qw(and it works in arrays too) ];
それは物事がより明確になるときはいつでもそれらを使用するのに最適です。qx、qq、およびqの場合、おそらく{}演算子を使用します。qwを使用する人々の最も一般的な習慣は、通常()演算子ですが、qw //が表示されることもあります。