:
은 동일합니다. 당신은 코드에서 use re 'debug';
를 추가, 스스로 그것을 확인하거나 호출 펄 -Mre=debug
을 추가 할 수 있습니다
첫 번째 예
$ perl -Mre=debug -E '$r=q{^\z}; $s=""; $r =~ /$s/ ? say "Match" : say "No match"'
Compiling REx ""
Final program:
1: NOTHING (2)
2: END (0)
minlen 0
Matching REx "" against "^\z"
0 <> <^\z> | 1:NOTHING(2)
0 <> <^\z> | 2:END(0)
Match successful!
Match
Freeing REx: ""
초 예를 들어 문자열이 포함되어 있지 않기 때문에이다
$ perl -Mre=debug -E '$r=q{^\z}; $r =~ /""/ ? say "Match" : say "No match"'
Compiling REx "%"%""
Final program:
1: EXACT <""> (3)
3: END (0)
anchored "%"%"" at 0 (checking anchored isall) minlen 2
Guessing start of match in sv for REx "%"%"" against "^\z"
Did not find anchored substr "%"%""...
Match rejected by optimizer
No match
Freeing REx: "%"%""
인용 부호 (즉,'/ ""/'가 일치하려고하는 것). – Biffen
정규 표현식으로'^ \ z '를 사용하려고합니까? 그렇다면 RHS에 있어야합니다 (예 : '$ foo = ~/^ \ z /'는'$ foo'가 빈 문자열이면 일치합니다. – ThisSuitIsBlackNot
@jabbas가 말한 것처럼 통찰력을 얻으려면''re 'debug'; '를''XX.pl' 소스 맨 위에 놓으십시오. 또한'perlop' 맨 페이지 (따옴표와 같은 연산자)를 읽어보십시오. – sln