It's impossible to check syntax without executing BEGIN blocks. The code in in BEGIN blocks including used modules can affect the parsing of subsequent code.
e.g. Does
$x = func + 2;
mean
$x = func() + 2;
or
$x = func(2);
or is it a syntax error such as
Not enough arguments
It could be any of the three. There's no way to know which without loading the module and calling it's import function from a BEGIN block.
Update: Added substantiation in the form of an example.
In reply to Re: perl -c and BEGIN block
by ikegami
in thread perl -c and BEGIN block
by dgaramond2
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |