Try-Tiny-Warnings
view release on metacpan or search on metacpan
lib/Try/Tiny/Warnings.pm view on Meta::CPAN
our @EXPORT = qw/
try_warnings
try_fatal_warnings
catch_warnings
/;
our %EXPORT_TAGS = (
'all' => [ @EXPORT, @EXPORT_OK ],
);
sub try_fatal_warnings(&;@) {
my $sub = shift;
local $SIG{__WARN__} = sub { die @_ };
try { $sub->() } @_;
};
sub try_warnings(&;@) {
my $sub = shift;
my @warnings;
local $SIG{__WARN__} = sub { push @warnings, @_ };
try { $sub->() } map {
my $x = $_;
ref $_ eq 'Try::Tiny::Warnings::Catch'
? finally { $x->(@warnings) }
: $_
} @_;
};
sub catch_warnings(&;@) {
my $sub = shift;
return bless( $sub, 'Try::Tiny::Warnings::Catch' ), @_
};
1;
__END__
=pod
( run in 0.732 second using v1.01-cache-2.11-cpan-49f99fa48dc )