I'm running ActiveState's 32 bit ActivePerl 5.14.2 on Windows 7. I wanted to mess around with a Git pre-commit hook to detect programs being checked in with syntax errors. (Somehow I just managed to do such a bad commit.) So as a test program I randomly jotted this:
use strict;
use warnings;
Syntax error!
exit 0;
However, it compiles and executes with no warnings, and errorlevel is zero on exit. How is this valid syntax?
Best Answer
Perl has a syntax called "indirect method notation". It allows
to be written as
So that means
is the same as
or
Not only is it valid syntax, it doesn't result in a run-time error because the first thing executed is
exit(0)
.