App-Greple
view release on metacpan or search on metacpan
lib/App/Greple/Filter.pm view on Meta::CPAN
sub push_output_filter {
my %arg = ref $_[0] eq 'HASH' ? %{+shift} : ();
my $fh = shift;
my $pkg = caller;
for my $filter (reverse @_) {
$debug{F} and warn "Push output Filter: \"$filter\"\n";
my $pid = open($fh, '|-') // die "$filter: $!\n";
if ($pid == 0) {
if ($filter =~ /^&/ and
my $f = parse_func({ PACKAGE => $pkg }, $filter)) {
local @ARGV;
open STDIN, '<&', 0 if eof STDIN;
$f->call;
} else {
do { exec $filter } ;
warn $@ if $@;
}
exit;
}
}
}
( run in 0.990 second using v1.01-cache-2.11-cpan-49f99fa48dc )