in reply to die not exiting Application

Um, just a wild guess here but is that perhaps all the code? Cos if it is you need to call push_report somewhere. That's the only way i can get that code to not die - by omitting (as you have in the code snippet) the call to push_report

Replies are listed 'Best First'.
Re^2: die not exiting Application
by mihirjha (Novice) on Apr 16, 2008 at 10:40 UTC
    I have noticed that the above problem is happening when we have TK error along with the open fail error in that case. TK:Error API get called instead of die_handler. Tk error are not considered fatal, so the application don't exit. But, this is not the right behavior of the application. Regards, Mihir

      In case die is overridden, you can call CORE::die instead.

      Update: maybe I should mention that this wouldn't help much, though, if the die should somehow happen to be trapped by an eval { ... } block  (which I don't know)...  In this case, you could try something along the lines of

      open my $fh, "<", $file or warn "Couldn't open '$file': $!" and ex +it;

      to force the program to terminate.

      Consider this

      my $file = "does-not-exist"; while (<STDIN>) { eval { open my $fh, "<", $file or warn "Couldn't open '$file': $!" and exit; }; print STDERR "ERROR: $@" if $@; }

      (which would actually terminate the program) vs.

      while (<STDIN>) { eval { open my $fh, "<", $file or CORE::die "Couldn't open '$file': $!"; }; print STDERR "ERROR: $@" if $@; }

      which would continue printing (despite the CORE::die)

      ERROR: Couldn't open 'does-not-exist': No such file or directory at ./ +680735.pl line 10, <STDIN> line 1. ERROR: Couldn't open 'does-not-exist': No such file or directory at ./ +680735.pl line 10, <STDIN> line 2. ...

      ...if you keep hitting the ENTER key.

      (If necessary, you could of course also use CORE::warn or CORE::exit in combination with the above...)