"Normally this gets a warning, but you've run into a case where it doesn't"
Update: You only get the warning if you ask for it and put exactly one space between the print and the left parenthesis. Using zero or more than one space, and no warning is emitted.
$ perl -we 'use constant WD => qw{Sun Mon}; print(WD)[1]' syntax error at -e line 1, near ")[" Execution of -e aborted due to compilation errors. $ perl -we 'use constant WD => qw{Sun Mon}; print (WD)[1]' print (...) interpreted as function at -e line 1. syntax error at -e line 1, near ")[" Execution of -e aborted due to compilation errors. $ perl -we 'use constant WD => qw{Sun Mon}; print (WD)[1]' syntax error at -e line 1, near ")[" Execution of -e aborted due to compilation errors. $ perl -we 'use constant WD => qw{Sun Mon}; print (WD)[1]' syntax error at -e line 1, near ")[" Execution of -e aborted due to compilation errors.
I tried up to five spaces: same result. Very weird!
Original text:
If you don't ask for warnings, you don't get warnings:
$ perl -e 'use constant WD => qw{Sun Mon}; print (WD)[1]' syntax error at -e line 1, near ")[" Execution of -e aborted due to compilation errors.
If you ask for warnings, you get warnings:
$ perl -we 'use constant WD => qw{Sun Mon}; print (WD)[1]' print (...) interpreted as function at -e line 1. syntax error at -e line 1, near ")[" Execution of -e aborted due to compilation errors.
There's nothing special something very strange about this case.
— Ken
In reply to Re^2: use constant module (was moudle)
by kcott
in thread use constant module
by Hosen1989
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |