Functional-Utility
view release on metacpan or search on metacpan
t/lib/Test/Resub.pm view on Meta::CPAN
use strict;
use warnings;
use base qw(Exporter);
our @EXPORT = qw(resub bulk_resub);
our $VERSION = 2.02;
use Carp qw(croak);
use Storable qw(dclone);
use Scalar::Util qw(weaken);
sub default_replacement_sub { sub {} }
sub set_prototype(&$) {
if (_implements('Scalar::Util','set_prototype')) {
goto \&Scalar::Util::set_prototype;
} else {
my $code = shift;
my $proto = shift;
$proto = defined $proto ? "($proto)" : '';
local $@;
t/lib/Test/Resub.pm view on Meta::CPAN
target_package => $package,
target_sub => $sub,
orig_code => $orig_code,
called => 0,
args => [],
autovivified => $autovivified,
stashed_variables => _save_variables($args{name}),
deep_copy => $args{deep_copy},
}, $class;
weaken(my $weak_self = $self);
my $wrapper_for_code = set_prototype(sub {
$weak_self->{called}++;
$weak_self->{was_called} = 1;
push @{$weak_self->{args}}, ($weak_self->{deep_copy}
? do {
local $Storable::Deparse = 1;
local $Storable::Eval = 1;
dclone(\@_);
}
: [@_]);
( run in 0.514 second using v1.01-cache-2.11-cpan-65fba6d93b7 )