📄 bytecode.html
字号:
<?xml version="1.0" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- saved from url=(0017)http://localhost/ -->
<script language="JavaScript" src="../../displayToc.js"></script>
<script language="JavaScript" src="../../tocParas.js"></script>
<script language="JavaScript" src="../../tocTab.js"></script>
<link rel="stylesheet" type="text/css" href="../../scineplex.css">
<title>B::Bytecode - Perl compiler's bytecode backend</title>
<link rel="stylesheet" href="../../Active.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:" />
</head>
<body>
<script>writelinks('__top__',2);</script>
<h1><a>B::Bytecode - Perl compiler's bytecode backend</a></h1>
<p><a name="__index__"></a></p>
<!-- INDEX BEGIN -->
<ul>
<li><a href="#name">NAME</a></li>
<li><a href="#synopsis">SYNOPSIS</a></li>
<li><a href="#description">DESCRIPTION</a></li>
<li><a href="#example">EXAMPLE</a></li>
<li><a href="#options">OPTIONS</a></li>
<li><a href="#known_bugs">KNOWN BUGS</a></li>
<li><a href="#notice">NOTICE</a></li>
<li><a href="#authors">AUTHORS</a></li>
</ul>
<!-- INDEX END -->
<hr />
<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>B::Bytecode - Perl compiler's bytecode backend</p>
<p>
</p>
<hr />
<h1><a name="synopsis">SYNOPSIS</a></h1>
<p><strong>perl -MO=Bytecode</strong>[<strong>,-H</strong>][<strong>,-o</strong><em>script.plc</em>] <em>script.pl</em></p>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<p>Compiles a Perl script into a bytecode format that could be loaded
later by the ByteLoader module and executed as a regular Perl script.</p>
<p>
</p>
<hr />
<h1><a name="example">EXAMPLE</a></h1>
<pre>
$ perl -MO=Bytecode,-H,-ohi -e 'print "hi!\n"'
$ perl hi
hi!</pre>
<p>
</p>
<hr />
<h1><a name="options">OPTIONS</a></h1>
<dl>
<dt><strong><a name="item__2db"><strong>-b</strong></a></strong>
<dd>
<p>Save all the BEGIN blocks. Normally only BEGIN blocks that <a href="../../lib/Pod/perlfunc.html#item_require"><code>require</code></a>
other files (ex. <code>use Foo;</code>) are saved.</p>
</dd>
</li>
<dt><strong><a name="item__2dh"><strong>-H</strong></a></strong>
<dd>
<p>prepend a <code>use ByteLoader VERSION;</code> line to the produced bytecode.</p>
</dd>
</li>
<dt><strong><a name="item__2dk"><strong>-k</strong></a></strong>
<dd>
<p>keep the syntax tree - it is stripped by default.</p>
</dd>
</li>
<dt><strong><a name="item__2dooutfile"><strong>-o</strong><em>outfile</em></a></strong>
<dd>
<p>put the bytecode in <outfile> instead of dumping it to STDOUT.</p>
</dd>
</li>
<dt><strong><a name="item__2ds"><strong>-s</strong></a></strong>
<dd>
<p>scan the script for <code># line ..</code> directives and for <goto LABEL>
expressions. When gotos are found keep the syntax tree.</p>
</dd>
</li>
</dl>
<p>
</p>
<hr />
<h1><a name="known_bugs">KNOWN BUGS</a></h1>
<ul>
<li>
<p><code>BEGIN { goto A: while 1; A: }</code> won't even compile.</p>
</li>
<li>
<p><code>?...?</code> and <a href="../../lib/Pod/perlfunc.html#item_reset"><code>reset</code></a> do not work as expected.</p>
</li>
<li>
<p>variables in <code>(?{ ... })</code> constructs are not properly scoped.</p>
</li>
<li>
<p>scripts that use source filters will fail miserably.</p>
</li>
</ul>
<p>
</p>
<hr />
<h1><a name="notice">NOTICE</a></h1>
<p>There are also undocumented bugs and options.</p>
<p>THIS CODE IS HIGHLY EXPERIMENTAL. USE AT YOUR OWN RISK.</p>
<p>
</p>
<hr />
<h1><a name="authors">AUTHORS</a></h1>
<p>Originally written by Malcolm Beattie <<a href="mailto:mbeattie@sable.ox.ac.uk">mbeattie@sable.ox.ac.uk</a>> and
modified by Benjamin Stuhl <<a href="mailto:sho_pi@hotmail.com">sho_pi@hotmail.com</a>>.</p>
<p>Rewritten by Enache Adrian <<a href="mailto:enache@rdslink.ro">enache@rdslink.ro</a>>, 2003 a.d.</p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -