We don't bite newbies here... much | |
PerlMonks |
Re: Variable assignment after logical ORby FunkyMonk (Chancellor) |
on Oct 02, 2007 at 18:58 UTC ( [id://642205]=note: print w/replies, xml ) | Need Help?? |
It's all to do with the order in which operators get evaluated (precedance). In your open statement, || is evaluated before the comma, so your statement is parsed as open FILE, (">test.txt" || $failed_flag = 1); giving the syntax error. Perl has some super-low precedance operators (and, or and not). and and or can be used as statement modifiers. So, you can write:
Or, if you add parentheses to your original statement, you can write:
That said, if you're using a modern perl, you are better off using the three-argument open and a lexical filehandle:
See here to read more about precedance update: missed a quote. Thanks toolic. not can't be used as a modifier.
In Section
Seekers of Perl Wisdom
|
|