I wrote
exe() and
bg() for that purpose because I felt that
IPC::* syntaxes were non-intuitive, IMHO.
Pipe processes and Perl subroutines together
Internally, both functions perform safe forking methods to ensure no child zombies.
Example to sort & number the list of /tmp files:
use Exe;
my @pids = &{
exe qw(ls /tmp),
exe qw(sort -n),
exe qw(cat -n),
};