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 //도 표시됩니다.