#!/usr/bin/perl use strict; use warnings; close STDERR; $|++; my $contaerrori= 0; $SIG{__WARN__} = sub { ++$contaerrori;print STDOUT "[WARN] ",@_ }; $SIG{__DIE__} = sub { print STDOUT "[CRITICAL ERROR]\t",@_; if ($^S == 1) { print "\tPerl interpreter 1 (Executing an eval)\n\tCONTINUE RUNNING\n"} elsif ($^S == 0){ print "\tPerl interpreter 0 (Otherwise)\n\tSTOP\n"} else { print "\tPerl interpreter undef (Parsing module/eval)\n"} print "\n"; }; ################################################################################ # HERE THE TESTS ################################################################################ print "\nNATURAL END OF PROGRAM : ",$contaerrori," WARN",($contaerrori eq 1 ? '' : 'S' )," IN $0\n";