Как я использую блок, поскольку 'или' пункт вместо простого умирают?

Еще несколько предупреждений:

alert((0, 9));
alert((9, 0));
alert(("foo", "bar"));

Кроме того, посмотрите, что Firebug console , если вы хотите попробовать это в интерактивном режиме.

14
задан Axeman 20 March 2009 в 17:21
поделиться

4 ответа

do то, что Вы ищете:

$ftp->put($my_file)
  or do {
      log("Couldn't upload $my_file");
      return(-1);
  };

log("$my_file uploaded");

, Но это является, вероятно, лучшим стилем:

unless( $ftp->put( $my_file )) { # OR if ( !$ftp->put...
      log("Couldn't upload $my_file");
      return(-1);
}

, Если Вы просто хотите возвратить состояние ошибки, тогда Вы можете die и использование eval в вызове func.

use English qw<$EVAL_ERROR>; # Thus, $@ <-> $EVAL_ERROR

eval { 
    put_a_file( $ftp, $file_name );
    handle_file_put();
};

if ( $EVAL_ERROR ) { 
    log( $EVAL_ERROR );
    handle_file_not_put();
}

и затем звонят

sub put_a_file { 
    my ( $ftp, $my_file ) = @_;
    $ftp->put( $my_file ) or die "Couldn't upload $my_file!";
    log( "$my_file uploaded" );

}

30
ответ дан 1 December 2019 в 07:52
поделиться

или сделайте {}; всегда делает мой главный вред. Существует ли серьезное основание использовать "или" синтаксис (который я допускаю использовать много для лайнеров), по сравнению с "если" (который я предпочитаю для много лайнеров)?

Так, там причина использовать или не использовать один из этих методов вместо другого?

foo()
  or do {
    log($error);
    return($error);
  };
log($success);

if (!foo()) {
  log($error);
  return($error);
}
log($success);
4
ответ дан 1 December 2019 в 07:52
поделиться

используйте , делают .

вот маленький фрагмент кода:


sub test {
    my $val = shift;
    if($val != 2) {
        return undef;
    }
    return 1;
}

test(3) || do {
            print "another value was sent";
};
1
ответ дан 1 December 2019 в 07:52
поделиться

Мне нелегко понимать, почему это должно быть обернуто в. Существует ли причина, что это не достаточно?

my $ftp_ok = $ftp->put( $my_file )
  or log("Couldn't upload $my_file" ) and return -1;

log("$my_file uploaded") if $ftp_ok;

Это предполагает, что помещенная функция не всегда возвращает undef на успехе.

-1
ответ дан 1 December 2019 в 07:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: