GNU/Linux |
CentOS 5.5 |
|
![]() |
B::Bytecode(3pm) |
![]() |
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!
−b |
Save all the BEGIN blocks. Normally only BEGIN blocks that "require" other files (ex. "use Foo;") are saved. | ||
−H |
prepend a "use 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 "# 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. | ||
• |
variables in "(?{ ... })" constructs are not properly scoped. | ||
• |
scripts that use source filters will fail miserably. |
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.
![]() |
B::Bytecode(3pm) | ![]() |