Еще несколько предупреждений:
alert((0, 9));
alert((9, 0));
alert(("foo", "bar"));
Кроме того, посмотрите, что Firebug console , если вы хотите попробовать это в интерактивном режиме.
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" );
}
или сделайте {}; всегда делает мой главный вред. Существует ли серьезное основание использовать "или" синтаксис (который я допускаю использовать много для лайнеров), по сравнению с "если" (который я предпочитаю для много лайнеров)?
Так, там причина использовать или не использовать один из этих методов вместо другого?
foo()
or do {
log($error);
return($error);
};
log($success);
if (!foo()) {
log($error);
return($error);
}
log($success);
используйте , делают .
вот маленький фрагмент кода:
sub test {
my $val = shift;
if($val != 2) {
return undef;
}
return 1;
}
test(3) || do {
print "another value was sent";
};
Мне нелегко понимать, почему это должно быть обернуто в. Существует ли причина, что это не достаточно?
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 на успехе.