我有兴趣了解更多有关Perl执行的幕后优化的信息.
一个例子是优化器将其reverse sort { $a <=> $b } @array;
视为sort { $b <=> $a } @array;
它看起来很好' 在这个问题上没有任何东西.perldoc
这里有几个问题:
在没有的情况下perldoc
,了解这种优化的官方资源是什么?
有没有理由perldoc
不记录这些优化?
还有哪些其他众所周知的优化?
对于这样的事情,您可能会在文档中找到点点滴滴(特别是那些处理C api的文档),但大多数都在C源代码本身中.
对于sort
,我相信相关的功能是S_simplify_sort
在op.c
优化器的核心Perl_peep
位于同一个文件中.
其中一些内容记录在perldeltas中 - 任何想要了解Perl操作方式的人都可以通过读取它们获得一些见解,从perl5004delta开始.其中一些在代码中得到了相当好的评论,当然RTFS是另一种学习方式.开始查看源代码的地方的一个很好的来源是perlguts的"编译代码"部分,另一个值得阅读的文档.
编程Perl的第18章"编译"中记录了一些,但绝不是全部(是的,第3版真的是10年,涵盖5.6.0和/或5.6.1,但第4版终于开始了!)
然而,其中很多内容都没有记录,除了可能正在开发中讨论该功能的邮件列表线程.如果您有兴趣了解有关perl内部的更多信息并且可能对文档做出一些贡献,我建议在perl5- porters 邮件列表或#p5p IRC频道上提出问题,因为这是大多数perl-guts的地方部落知识存在.