感叹号在这里是什么意思

时间:2019-04-04 21:06:24

标签: perl filehandle

在此示例中,感叹号是什么意思? “开放”之前的权利?这本书不能回答我的问题。

if ( ! open PASSWD, "/etc/passwd") {
    die "How did you get logged in? ($!)";
}

while (<PASSWD>) {
    chomp;
    ...
}

1 个答案:

答案 0 :(得分:4)

!是布尔求反运算符。

  • 给出一个真值,它返回false。
  • 给出一个假值,它返回true。

open(...)在错误时返回false,在成功时返回true。

因此,!open(...)在错误时返回true,在成功时返回false。

如果表达式(if为真,则执行!open(...)的块。

因此,如果if返回错误,则执行open的块。

Perl的符号运算符记录在perlop中。