http://www.perlmonks.org?node_id=268889


in reply to SIGINT in system() with shell metachars

Try IPC::Run (in general everytime you think you need a better interface to external program execution then offered by Perl builtins you should use IPC::Run).

# UNTESTED CODE use IPC::Run qw(start); my $h = start([qw(prog1 file1)], '|', [qw(filter -v), $version], "> $tmpfile", "2>&1"); $h->finish; # returns exist values of each child process which you can use # to find signal that killed each child process my @results = $h->full_results;

--
Ilya Martynov, ilya@iponweb.net
CTO IPonWEB (UK) Ltd
Quality Perl Programming and Unix Support UK managed @ offshore prices - http://www.iponweb.net
Personal website - http://martynov.org