我用 Perl 编写了一个相当基本的 webapp,它使用XML::Twig
. 这些 XML 文件相当大且复杂,因此我特意使用逐块变体,XML::Twig
而不是“一次全部加载”方法。
但是,如果我加载大型 XML 文档,即使使用分块方法,这个 webapp 也会完全崩溃并死掉。我不知道为什么会发生这种情况,因为 web 应用程序托管在与 1and1.co.uk 共享的服务器上,我看不到 Apache 错误日志文件。即使将调用包装在一个eval{}
块中,我也无法从死亡中捕捉到它。令人讨厌的是,它在我家里的开发服务器上运行良好,所以我无法重现这个问题。
为了让它工作,我做了一个改变,而不是使用该parse()
方法并传入一个包含整个 XML 的标量,而是将 XML 写入一个文件,然后parsefile( $filename )
改为使用。当我做出改变时,它奏效了。
我对此有点困惑,tbh,我试图通过谷歌的奇迹来找出是否parsefile()
确实更有效parse()
,但没有找到任何东西。有没有人碰巧知道?