一个非常简单的问题,但我似乎无法弄清楚问题.为什么这段代码成功打印了$ F [1]不等于83的所有行:
if ($F[1] != 83) {
print OUT2 "$_\n";
}
Run Code Online (Sandbox Code Playgroud)
但是这个片段(包含一个OR语句)只是打印所有行,忽略了两个条件:
if ($F[1] != 83 || $F[1] != 99) {
print OUT2 "$_\n";
}
Run Code Online (Sandbox Code Playgroud)
期望的结果是打印$ F [1]包含除83或99之外的任何行的所有行.
永远不要忘记以下逻辑规则:
(not (A and B)) == (not(A) or not(B))
(not (A or B)) == (not(A) and not(B))
Run Code Online (Sandbox Code Playgroud)