如果我有操作码,有没有办法创建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我想以某种方式扭转这一点。
发布于 2014-12-24 10:31:29
如果你说的“有操作码”,你的意思是“有操作码树”
当B::Concise试图给出操作码树的准确表示时,B::Deparse获取操作码树并从中生成源代码。
$ perl -MO=Deparse -e'$x && print'
print $_ if $x;
-e syntax OK这是相当好的,尽管有一些限制。
如果“有操作码”,你的意思是“有B::简明的输出”
考虑到B::Concise试图非常完整,这可能是可能的,但我认为缺少一些信息。我非常确定在CPAN上不会有人尝试这样做,因为我从来没有听说过blead破坏它(这是你期望经常发生的事情)。
https://stackoverflow.com/questions/27629176
复制相似问题