in reply to passing array arguments to exec()

I believe that the pipe symbol "|" is usually interpreted by the shell, and is not processed by exec(), thus, ps is seeing the "|", and other arguements too.

Now, given that perl has a very nice built in grep, there's no reason to try to pipe in the eval. Simply, in your parent, after reading the pipe, do a line like..

@output = grep { /$process/ } @output;
to do the same thing.
Dr. Michael K. Neylon - mneylon-pm@masemware.com || "You've left the lens cap of your mind on again, Pinky" - The Brain