Mahesh
Mahesh

Reputation: 233

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

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?

Upvotes: 7

Views: 6934

Answers (5)

Dave Cross
Dave Cross

Reputation: 69224

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.

Upvotes: 16

rerun
rerun

Reputation: 25495

use exit instead of die.

Upvotes: 9

Bill Ruppert
Bill Ruppert

Reputation: 9016

You could just say

die "\n";

to suppress the message.

Upvotes: 5

Mike Thomsen
Mike Thomsen

Reputation: 37506

my $f1 = "$pre_file";

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

Upvotes: 3

Quentin
Quentin

Reputation: 943108

You probably want to exit 1 instead of dying then.

Upvotes: 6

Related Questions