Subject: | localize SIG DIE |
Date: | Mon, 08 Dec 2014 18:11:50 +0300 |
To: | bug-Type-Tiny [...] rt.cpan.org |
From: | Кокарев Константин <nwtour [...] mail.ru> |
Hello, Please localize SIG{__DIE__} before eval "require $library;". Patch attached. Thanks.
Example:
$SIG{__DIE__} = sub { print LOG ( 'die:', @_ ) };
my $gnupg = GnuPG::Interface->new ();
$gnupg_c->options->hash_init( armor => 1, meta_interactive => 0 );
$gnupg->get_public_keys ();
Result:
die:Can't locate GnuPG.pm in @INC (you may need to install the GnuPG module) (@INC contains: /opt/drw/lib /opt/drw/lib /opt/drw/lib .) at (eval 182)[/opt/drw/lib/Type/Registry.pm:188] line 1.
at /tmp/test.pl
main::__ANON__[/tmp/test.pl:3]("Can't locate GnuPG.pm in \@INC (you may need to install the Gn"...) called at (eval 182)[/opt/drw/lib/Type/Registry.pm:188] line 1
eval 'require GnuPG;' called at /opt/drw/lib/Type/Registry.pm line 188
Type::Registry::foreign_lookup(Type::Registry::DWIM=HASH(0x30bc140), "GnuPG::Fingerprint", 1) called at /opt/drw/lib/Type/Utils.pm line 476
Type::Registry::DWIM::foreign_lookup(Type::Registry::DWIM=HASH(0x30bc140), "GnuPG::Fingerprint", 1) called at /opt/drw/lib/Type/Parser.pm line 136
Type::Parser::_eval_type(HASH(0x3b6a9a8), Type::Registry::DWIM=HASH(0x30bc140)) called at /opt/drw/lib/Type/Parser.pm line 55
Type::Parser::eval_type("GnuPG::Fingerprint", Type::Registry::DWIM=HASH(0x30bc140)) called at /opt/drw/lib/Type/Registry.pm line 220
Type::Registry::lookup(Type::Registry::DWIM=HASH(0x30bc140), "GnuPG::Fingerprint") called at /opt/drw/lib/Type/Utils.pm line 574
Type::Utils::dwim_type("GnuPG::Fingerprint", "for", "GnuPG::Revoker") called at /opt/drw/lib/MooX/late.pm line 167
MooX::late::_handle_isa("MooX::late", "fingerprint", HASH(0x3b58678), MooX::late::DefinitionContext=HASH(0x3b66410), "GnuPG::Revoker") called at /opt/drw/lib/MooX/late.pm line 135
Moo::has("fingerprint", "isa", "GnuPG::Fingerprint", "is", "rw") called at /opt/drw/lib/GnuPG/Revoker.pm line 29
require GnuPG/Revoker.pm called at /opt/drw/lib/GnuPG/Interface.pm line 416
GnuPG::Interface::get_keys(GnuPG::Interface=HASH(0x37f6890), "commands", ARRAY(0x38484f0), "command_args", ARRAY(0x3670718)) called at /opt/drw/lib/GnuPG/Interface.pm line 353
GnuPG::Interface::get_public_keys(GnuPG::Interface=HASH(0x37f6890)) called at /tmp/test.pl
Message body is not shown because sender requested not to inline it.