如果答案已经确定,Perl是否已优化以跳过剩余的逻辑操作数?

Ana*_* Wu 4 optimization perl logic

例如,我需要匹配一些文本if $do eq 'b'.如果我运行此代码:

if (($do eq 'b') && (/text/))
{
do stuff
}
Run Code Online (Sandbox Code Playgroud)

如果第一个括号是假的,perl会评估第一个括号和第二个括号,无论它在第二个括号的评估中是什么或者它会停止?

后续问题在这里.(我不知道是否应该提出新问题或在此发布)

Dre*_*fer 7

是.此行为通常用于惯用perl.

考虑:

open FILE, ">$fname" or die $!;
Run Code Online (Sandbox Code Playgroud)

如果打开文件没有错误(open返回true),die则不执行该语句.这不是die常规的特殊处理; 它只是perl处理逻辑评估的方式.