Data-Munge
view release on metacpan or search on metacpan
lib/Data/Munge.pm view on Meta::CPAN
map { $f->($_); $_ } @xs
}
if ($^V ge v5.16.0) {
eval_string <<'EOT';
sub rec (&) {
my ($f) = @_;
sub { $f->(CORE::__SUB__, @_) }
}
EOT
} elsif (eval { require Scalar::Util } && defined &Scalar::Util::weaken) {
*rec = sub (&) {
my ($f) = @_;
my $w;
my $r = $w = sub { $f->($w, @_) };
Scalar::Util::weaken($w);
$r
};
} else {
# slow but always works
*rec = sub (&) {
my ($f) = @_;
sub { $f->(&rec($f), @_) }
};
}
( run in 0.225 second using v1.01-cache-2.11-cpan-65fba6d93b7 )