in reply to reading unix command with open syntax error

That error message means that you have a string (specifically " '{print $1,$2 }' |") where a string shouldn't be. While you intended to write only one string for the piped open, you have two strings, thanks to the field separator passed to awk. This is a good use of an alternate quoting construct:

open my $IN, q!ps -aux | awk -F" " '{print $1,$2 }' |! or die "Can't open pipe";

I switched to the non-interpolating form because you probably don't want to interpolate the regexp match variables $1 and $2 into your string there.

Of course, you could skip the pipe to awk and process the result with Perl (split) will come in handy....

Replies are listed 'Best First'.
Re^2: reading unix command with open syntax error
by csarid (Sexton) on Mar 17, 2009 at 14:44 UTC
    Thanks!

    You're right... It was easier to just let perl handle it in the split. Although I could not get the q! to work for some reason.. but would like to better understand how this works.. can you point me to some FAQs or documents?

    Thanks again!

      See "Quote and Quote-like Operators" in perlop.