所以我理解perl有很多不寻常的语法,但是我在工作中遇到了一段代码片段,这让我感到困惑。有人可以向我解释一下这意味着什么:
<<'m'=~m>>
print $a unless $b;
return;
m
;
它看起来像HEREDOC语法,但不是我见过的任何形式。
答案 0 :(得分:24)
运行B::Deparse有很多帮助,以便了解perl如何处理这段代码(假设它位于&#34; test.pl&#34;文件):
perl -MO=Deparse test.pl
告诉我们:
"print \$a unless \$b;\nreturn;\n" =~ //;
test.pl syntax OK
因此,正如您所看到的,perl正在尝试将空的regexpr与此字符串匹配:"print \$a unless \$b;\nreturn;\n"