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....
In reply to Re: reading unix command with open syntax error
by chromatic
in thread reading unix command with open syntax error
by csarid
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |