Perl的C翻译后端有什么用途?

时间:2010-11-11 03:20:51

标签: perl internals

除了纯粹显而易见的:“它将Perl转换为C.”;对于Perl编译器的优化C转换后端,B :: CC,是否有任何真实世界使用(a.k.a. hacks)?

2 个答案:

答案 0 :(得分:2)

不是真的。这意味着您可以将(小)Perl脚本转换为(大)C程序,这对接收者来说更难以进行逆向工程。在一些偏执的圈子中,这可能被认为是一个优势(例如,如果您的Perl代码令人尴尬地糟糕,而您宁愿从付费客户那里隐瞒这一事实)。但主要是限于负值。

答案 1 :(得分:2)

将一个Perl程序编译成一个可以执行的optree,有时可能需要一段时间。通过将perlcc与其任何后端一起使用,您可以保护其中一些时间。这将以某种方式序列化已编译的optree,并在执行编译的二进制文件时稍后加载,稍快一些。我可以看到它在例如CGI环境中很有用,但是,可以使用更好的替代方法来避免启动成本。

与普遍认为的相反,perlcc并不会对生成的二进制文件进行逆向工程变得非常困难,如How can I reverse-engineer a Perl program that has been compiled with perlcc?

中所述。