Что здесь означает восклицательный знак - PullRequest
0 голосов
/ 05 апреля 2019

Что означает восклицательный знак в этом примере?Тот, что прямо перед «открытым»?Книга не может ответить на мой вопрос ..

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

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

1 Ответ

4 голосов
/ 05 апреля 2019

! - логический оператор отрицания.

  • Если задано истинное значение, возвращается false.
  • При ложном значении возвращается true.

open(...) возвращает false при ошибке и true при успехе.

Следовательно, !open(...) возвращает true в случае ошибки и false в случае успеха.

Блок if выполняется, если выражение (!open(...)) истинно.

Следовательно, блок if выполняется, если open вернул ошибку.

Символические операторы Perl описаны в perlop .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...