Perl: How to "die" with no error message?

6.7k Views Asked by At

I run a simple file test in perl with the code below:

my $f1 = "$pre_file";

 unless (-e $1) {

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

 die;

 } 

It prints the following output:

Pre_check file does not exists!
Died at ./huawei-postcheck line 81.

However I do not want the last line "Died at ./huawei-postcheck line 81.".

I want to to "die" with no error message.

Is it possible?

5

There are 5 best solutions below

0
On BEST ANSWER

You could just say

die "\n";

to suppress the message.

1
On

use exit instead of die.

0
On

You probably want to exit 1 instead of dying then.

0
On
my $f1 = "$pre_file";

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

See the documentation for die.

If the last element of LIST does not end in a newline, the current script line number and input line number (if any) are also printed, and a newline is supplied.

So you can get die to work without printing anything by just using die "\n". But given that you have an error message, I can't see why you don't use that.

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

Of course, the difference is that the message will now go to STDERR rather than STDOUT. But that's probably the right place for it to go.