Perl – 操作码的操作码?

前端之家收集整理的这篇文章主要介绍了Perl – 操作码的操作码?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法创建perl源代码,如果我有操作码?

例如

perl -MO=Concise -e "print 123"

输出操作码:

6  <@> leave[1 ref] vKP/REFC ->(end)
1     <0> enter ->2
2     <;> nextstate(main 1 -e:1) v:{ ->3
5     <@> print vK ->6
3        <0> pushmark s ->4
4        <$> const[IV 123] s ->5

我想以某种方式扭转这种局面.

解决方法

如果通过“拥有操作码”,则表示“拥有操作码树”

虽然B :: Concise试图准确表示操作码树,但B :: Deparse采用操作码树并从中生成代码.

$perl -MO=Deparse -e'$x && print'
print $_ if $x;
-e Syntax OK

虽然有一些限制,但它还是相当不错的.

如果通过“拥有操作码”,则表示“具有B :: Concise的输出

鉴于B :: Concise试图非常完整,它可能是可能的,但我认为缺少一些信息.我很确定没有什么可以尝试在CPAN上做到这一点,因为我从来没有听说过破坏它(你会期望经常发生的事情).

猜你在找的Perl相关文章