Perl在哪里存储其中间字节代码?

时间:2010-10-01 12:40:40

标签: perl

经过几个链接后我才知道Perl会进行编译和创建 中间字节代码,然后解释该字节代码。 我的问题是字节代码在哪里?

与java,c等其他语言一样,我们可以在编译后看到机器可执行对象代码。虽然Perl不会创建机器可执行代码,但应该有一些 临时存储字节码的位置。

2 个答案:

答案 0 :(得分:20)

编译结果作为操作码树存储在内存中,或者简称为optree。 perl的运行时正在使用这个结构来执行你的程序。

您可能会发现"Compiled Code" section of perlguts很有趣。它解释了构建执行perl optree的许多细节。

使用B::C分发版及其中包含的ByteLoader模块,将该optree写入磁盘并将其再次加载到另一个perl进程中也是可能的。但是,这种技术在许多程序中都不能很好地工作,因此不建议以任何方式使用。

答案 1 :(得分:2)

它将其作为AST存储在内存中。