http://www.perlmonks.org?node_id=852982


in reply to Re^3: how to check syntax of code inside a scalar?
in thread how to check syntax of code inside a scalar?

This does however seem to match the perl -c syntax check. From perlrun:
       -c   causes Perl to check the syntax of the program and then exit
            without executing it.  Actually, it will execute "BEGIN",
            "UNITCHECK", "CHECK", and "use" blocks, because these are
            considered as occurring outside the execution of your program.
            "INIT" and "END" blocks, however, will be skipped.
perl -c -e 'BEGIN { print "yay\n"; }; print "boo\n"'
yay -e syntax OK

Replies are listed 'Best First'.
Re^5: how to check syntax of code inside a scalar?
by aquarium (Curate) on Aug 05, 2010 at 03:39 UTC
    What if you always inject a
    BEGIN {exit}
    will it still do the compile step?
    the hardest line to type correctly is: stty erase ^H
      I't wouldn't do the compile step, but because this happens early, it would pretty well bypass any syntax checking whatsoever:
      perl -c -e 'BEGIN{exit}; BEGIN{print "yay\n"};@&$^^#@!.' -e syntax OK