The error message is saying that when "system()" invokes a shell to run your "java -version" command, the shell is unable to find an application called "java" in its current PATH. But I don't understand the "UX:" part.
What operating system and shell are you using? This might account for why the redirection didn't work as expected. On my bsd-based darwin OS, the first of the two commands below produces an error message on the console, but the second does not -- meanwhile, a freebsd system behaves differently:
I'm not sure if that's a difference in how Perl was built on the two machines I happened to be using, or whether it's a matter of how the shells work.perl -e 'system( "foo > junk" ); # prints: # sh: line 1: foo: command not found (on darwin) # foo: not found (on freebsd 6.1) perl -e 'system( "foo > junk 2>/dev/null" ); # no output on darwin # still prints "foo: not found" on freebsd
It may also be relevant that the ability to redirect stderr and stdout separately is only available for Bourne-style shells (sh, bash, ksh, zsh); in "c-style" shells ("csh" and any others like it), you can redirect stdout, and you can have stderr included with stdout when redirecting stdout, and that's all you can do ( 2> errlog is not supported, which is a big reason why I never use csh).
In reply to Re: redirecting standard output and standard error
by graff
in thread redirecting standard output and standard error
by s_gaurav1091
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |