Perl: Как «умереть» без сообщения об ошибке? - PullRequest
3 голосов
/ 19 октября 2011

Я запускаю простой тест файла в Perl с кодом ниже:

my $f1 = "$pre_file";

 unless (-e $1) {

 print "\n Pre_check file does not exists! \n";

 die;

 } 

Он печатает следующий вывод:

Файл Pre_check не существует!
Умер в. / Huawei-postcheck линия 81.

Однако мне не нужна последняя строка «Умер в ./huawei-postcheck line 81.».

Я хочу "умереть" без сообщения об ошибке.

Возможно ли это?

Ответы [ 5 ]

14 голосов
/ 19 октября 2011

См. Документацию для die .

Если последний элемент LIST не заканчивается новой строкой, номер текущей строки скрипта и номер строки ввода (если есть)также печатаются, и предоставляется новая строка.

Таким образом, вы можете заставить матрицу работать, ничего не печатая, просто используя die "\n".Но, учитывая, что у вас есть сообщение об ошибке, я не могу понять, почему вы не используете это.

unless (-e $f1) {
  die "\n Pre_check file does not exist!\n";
}

Конечно, разница в том, что сообщение теперь отправляется в STDERR, а не в STDOUT.Но это, вероятно, правильное место для этого.

7 голосов
/ 19 октября 2011

используйте exit вместо die.

4 голосов
/ 19 октября 2011

Вы могли бы просто сказать

die "\n";

для подавления сообщения.

4 голосов
/ 19 октября 2011

Вы, вероятно, хотите exit 1 вместо смерти.

3 голосов
/ 19 октября 2011
my $f1 = "$pre_file";

unless (-e $1) {
    print "\n Pre_check file does not exists! \n";
    exit 1;
}
...