How to read from a pipeline with Perl

Q

How to read from a pipeline with Perl

✍: Guest

A
Example 1: 

To run the date command from a Perl program, and read the output
of the command, all you need are a few lines of code like this: 
 
   open(DATE, "date|"); 
   $theDate = <DATE>; 
   close(DATE); 
 
The open() function runs the external date command, then opens 
a file handle DATE to the output of the date command. 

Next, the output of the date command is read into 
the variable $theDate through the file handle DATE.
  
Example 2:

The following code runs the "ps -f" command, and reads the output:

   open(PS_F, "ps -f|"); 
   while (<PS_F>) { 
      ($uid,$pid,$ppid,$restOfLine) = split; 
      # do whatever I want with the variables here ... 
   } 
   close(PS_F); 
 

2013-09-05, 1910👍, 0💬