Perl解释器(又名“perl”)在内存不足时是否有标准(ish)方式来表现?它是否以任何方式记录/指定?以某种统一的方式编码?
我对任何被表示为对正在运行的 Perl 代码的约定的标准特别感兴趣——例如,会die
被调用吗?会END
被执行block吗?ETC...
我对“理论”答案都很好(例如,某种通用的“这是 perl 代码在内存不足时通常应该做的”任务声明文档来自 Larry/P5P/etc ......,即使不是 100% 的 malloc() 调用遵循此规则);或“实用”语句(例如,Perl 中的所有 malloc() 调用都包装在通用的“allocate_memory”函数中,该函数统一处理所有故障)。
答案可能取决于具体导致内存不足的原因(例如,为 Perl 代码的数据结构请求更多内存与内部 Perl 代码分配的内存与 Perl 程序中明确的“需要存储更多数据”逻辑无关) .
如果答案非常依赖于实现,假设 perl 用于 Solaris/Linux,并且缩小到任何最近的稳定版本(5.8 到 5.16)都是可以接受的。
问题仅限于标准 Perl 解释器,但是您希望将其定义为预编译配置(例如,主要 Linux 发行版附带的 perl,或者使用所有默认值单独编译的 perl,等等)。
注意:这个问题来自 Gilles 对另一个 Q的评论