Output doesn't go to the screen because of the terminating pipe character ('|'), instead it goes to the PH file handle, which you must then *read*, using a loop like this:
#!/usr/bin/perl -w
# Note: the 'die' on the next line will probably never trigger
open PH, "ps -ef|" or die "$!: opening pipe";
# your snippet was missing this loop:
while (<PH>) {
print; # or whatever ...
}
# Note that for pipes, most errors will come when you try to close it,
+ so
# if the command line had a problem, you'd see this 'die' trigger, not
# the one on the 'open'
close PH or die "$!: opening pipe";
dmm
You can give a man a fish and feed him for a day ...
Or, you can teach him to fish and feed him for a lifetime
|