From
perlipc, use the popen()-like version of
open.
Using open() for IPC
Perl's basic open() statement can also be used for unidirection
+al interprocess communication by either
appending or prepending a pipe symbol to the second argument to
+ open(). Here's how to start something up in a
child process you intend to write to:
open(SPOOLER, "| cat -v | lpr -h 2>/dev/null")
|| die "can't fork: $!";
local $SIG{PIPE} = sub { die "spooler pipe broke" };
print SPOOLER "stuff\n";
close SPOOLER || die "bad spool: $! $?";
And here's how to start up a child process you intend to read f
+rom:
open(STATUS, "netstat -an 2>&1 |")
|| die "can't fork: $!";
while (<STATUS>) {
next if /^(tcp|udp)/;
print;