【发布时间】:2012-10-25 10:50:24
【问题描述】:
system() 调用是否可以在 Perl 5 中使用 die?
(换句话说,为了使执行system() 调用的程序100% 防崩溃,是否需要将其包装到eval 块中,或者完全完全没必要?)
我在perldoc system 中没有发现任何关于这种可能性的提及,但也没有找到确切的“这个电话永远不会消亡”。
注意:这里的问题是关于基本 CORE Perl,没有autodie 或任何其他具有类似效果的自定义模块。此外,假设没有设置 ALRM 信号,或任何其他自定义信号处理程序。
我假设 Perl 5.* 的所有版本的行为都相同,但如果不是,将不胜感激与 5.8 有关的答案。
【问题讨论】:
-
我还没有去查看源代码,所以我没有发布这个作为答案,但如果
system没有办法耗尽内存,我会感到惊讶. -
@Gilles - “内存不足”会导致 Perl 发出“死”而不是核心转储/崩溃?我会假设后者,但也不确定
-
@Gilles - if only we had a place where we can ask programming questions...。让我们看看 SO 智慧发现了什么。