Acme-Capture
view release on metacpan or search on metacpan
lib/Acme/Capture.pm view on Meta::CPAN
my $args = join q{, }, @{$api{$sub}};
eval "sub $sub(&;@) { unshift \@_, $args; goto \\&Capture::Tiny::_capture_tee; }"; ## no critic
}
{
no warnings 'redefine';
eval <<'EOT' or die "Can't redefine _relayer() ==> $@";
sub Capture::Tiny::_relayer {
my ($fh, $layers) = @_;
my $unix_utf8_crlf = @$layers > 4
&& $layers->[0] eq 'unix'
&& $layers->[1] eq 'crlf'
&& $layers->[2] eq 'utf8'
&& $layers->[3] eq 'unix'
&& $layers->[4] eq 'encoding(utf8)' ? 1 : 0;
if ($unix_utf8_crlf and $^O eq 'MSWin32') {
binmode($fh, ':unix:encoding(utf8):crlf');
}
else {
# _debug("# requested layers (@{$layers}) for @{[fileno $fh]}\n");
my %seen = ( unix => 1, perlio => 1 ); # filter these out
my @unique = grep { !$seen{$_}++ } @$layers;
# _debug("# applying unique layers (@unique) to @{[fileno $fh]}\n");
binmode($fh, join(":", ":raw", @unique));
}
};
( run in 1.090 second using v1.01-cache-2.11-cpan-49f99fa48dc )