
B::Bytecode - Perl compiler's bytecode backend

perl -MO=Bytecode[,-H][,-oscript.plc] script.pl

Compiles a Perl script into a bytecode format that could be loaded later by the ByteLoader module and executed as a regular Perl script.

$ perl -MO=Bytecode,-H,-ohi -e 'print "hi!\n"'
$ perl hi
hi!

Save all the BEGIN blocks. Normally only BEGIN blocks that require other files (ex. use Foo;) are saved.
prepend a use ByteLoader VERSION; line to the produced bytecode.
keep the syntax tree - it is stripped by default.
put the bytecode in <outfile> instead of dumping it to STDOUT.
scan the script for # line .. directives and for <goto LABEL> expressions. When gotos are found keep the syntax tree.

BEGIN { goto A: while 1; A: } won't even compile.?...? and reset do not work as expected.(?{ ... }) constructs are not properly scoped.
There are also undocumented bugs and options.
THIS CODE IS HIGHLY EXPERIMENTAL. USE AT YOUR OWN RISK.

Originally written by Malcolm Beattie <mbeattie@sable.ox.ac.uk> and modified by Benjamin Stuhl <sho_pi@hotmail.com>.
Rewritten by Enache Adrian <enache@rdslink.ro>, 2003 a.d.