man B::Bytecode () - Perl compiler's bytecode backend

NAME

B::Bytecode - Perl compiler's bytecode backend

SYNOPSIS

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

DESCRIPTION

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

EXAMPLE

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

OPTIONS

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

KNOWN BUGS

•
CWBEGIN { goto A: while 1; A: } won't even compile.
•
CW?...? and CWreset do not work as expected.
•
variables in CW(?{ ... }) constructs are not properly scoped.
•
scripts that use source filters will fail miserably.

NOTICE

There are also undocumented bugs and options.

THIS CODE IS HIGHLY EXPERIMENTAL. USE AT YOUR OWN RISK.

AUTHORS

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.