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

标签 perl optimization logic

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

if (($do eq 'b') && (/text/))
{
do stuff
}

无论如何,perl 会评估第一个括号和第二个括号,还是会在第一个括号为假时停止计算第二个括号?

后续问题here . (我不知道我是应该提出一个新问题还是在这里发布)

最佳答案

是的。这种行为通常用于惯用的 perl。

考虑:

open FILE, ">$fname" or die $!;

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

关于perl - 如果答案已经确定,Perl 是否经过优化以跳过剩余的逻辑操作数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17178223/

相关文章:

c++ - 编译器是否优化了未使用的参数?

mysql - 为快速计数优化 MySQL 数据库

optimization - 如何在 Golang 中获取指向任何数据类型值的字节指针?

logic - 简单逻辑题: check if x is between 2 numbers

java - for 循环条件中的不等于与不等式 - 在 Java 中

perl - 将空子程序与至少有一些最少代码的子程序区分开来

perl 命令行替换字符串

perl - 在mod_perl中通过Perl中的 `use`和 `require`语句来搜索具有当前源文件的目录的规范方法是什么?

javascript - 检查商店是否营业。 MySQL Node.js 业务逻辑

perl - 如何在Perl中将4个连续的空行压缩为一行