Current Perl documentation can be found at perldoc.perl.org.
Here is our local, out-dated (pre-5.6) version:
The IPC::Open2 module (part of the standard perl distribution) is an easy-to-use approach that internally uses
pipe(),
fork(),
and
exec()
to do the job. Make sure you read the deadlock warnings in its documentation, though (see
Open2). See Bidirectional Communication with Another Process and Bidirectional Communication with Yourself
You may also use the IPC::Open3 module (part of the standard perl distribution), but be warned that it has a different order of arguments from IPC::Open2 (see Open3).