感叹号在这里意味着什么

问题描述 投票:0回答:1

感叹号在这个例子中意味着什么?在'开放'之前的那一个?这本书无法回答我的问题..

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

while (<PASSWD>) {
    chomp;
    ...
}
perl filehandle
1个回答
4
投票

!是布尔否定运算符。

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

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.