Perl ИЛИ делать несколько вещей - PullRequest
2 голосов
/ 09 апреля 2019

Я работал над чем-то, и некоторое время назад я мог поклясться, что это действительно то, что вы можете сделать, но сегодня я гуглил и не мог найти какую-либо ссылку.

$StaementHandler->execute($val1, $val2, $val3) or {
    SomeFunction($var1, $var2);
    Setup::Abend("Can't execute SQL statement: $DBI::errstr");
}

Поэтому мне было интересно, есть ли какой-то особый способ, которым вы могли бы запустить несколько вещей вместо того, чтобы просто умереть.

Также, если нет, я просто хотел убедиться, что это даст эквивалентный результат.

unless ($StaementHandler->execute($val1, $val2, $val3)) {
    SomeFunction($var1, $var2);
    Setup::Abend("Can't execute SQL statement: $DBI::errstr");
}

1 Ответ

7 голосов
/ 09 апреля 2019

Вы ищете or do {...}.or может обрабатывать только выражения с одним оператором, а do берет блок и превращает его в выражение с одним оператором (с точки зрения вне скобок).

И, лично я думаю,Второй вариант обычно (но не всегда) более читабелен в любом случае.

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