这就是我想要的
if (grep {/$dn/} @ad_sys) {
$is_system = 1;
}
但这总是返回1
。
if (grep $_ == $dn, @ad_sys) {
$is_system = 1;
}
第二件作品是做什么的?
答案 0 :(得分:5)
==
用于数字比较,如果您需要使用eq
进行字符串比较。
答案 1 :(得分:4)
它会从列表@ad_sys中过滤那些数字等于$ dn的元素。 然后,如果结果不为空,则条件为真,并输入if块。
答案 2 :(得分:3)
这两段代码有两点不同。
首先,正如其他人已经指出的那样,存在数字比较运算符的问题。
但其次,/ $ dn /检查$ _是否包含$ dn中的数据。 $ _ eq $ dn检查$ _是否完全等于$ dn。
这种差异可能会导致问题,例如,如果您的数据包含从未删除换行符的文件中读取的行。