LINUX.ORG.RU

История изменений

Исправление Olegymous, (текущая версия) :

Или вообще обрабатывать die в главной программе. Тогда будет так

package B;

sub bad {
	die "I'm bad";
}

package A;

sub foo {
	print "I'm foo\n";
};

sub bar {
	B::bad();
}

1;

use strict;
use lib 'lib';
use A;
# other code
....
{
	local $SIG{__DIE__} = sub {
		warn "died";
	};
	
	A::foo();
	A::bar();
}
#other code
...

Исправление Olegymous, :

Или вообще обрабатывать die в главной программе. Тогда будет так

package B;

sub bad {
	die "I'm bad";
}

package A;

sub foo {
	print "I'm foo\n";
};

sub bar {
	B::bad();
}

1;

use strict;
use lib 'lib';
use A;

{
	local $SIG{__DIE__} = sub {
		warn "died";
	};
	
	A::foo();
	A::bar();
}

Исходная версия Olegymous, :

Или вообще обрабатывать die в главной программе. Тогда будет так

package B;

sub bad {
	die "I'm bad";
}

package A;

sub die_handler {
	warn "Died";
}

sub foo {
	print "I'm foo\n";
};

sub bar {
	B::bad();
}

1;

use strict;
use lib 'lib';
use A;

{
	local $SIG{__DIE__} = sub {
		warn "died";
	};
	
	A::foo();
	A::bar();
}