运行非常复杂的 Perl 脚本时出现特定的“内存不足!”消息

运行非常复杂的 Perl 脚本时出现特定的“内存不足!”消息

我正在运行一个 Perl 脚本,该脚本解析了大约 7,000 个 HTML 文件中的信息。可能不太相关,但我只是想描述一下,这确实做了很多事情。我最初让他们直接将我正在寻找的信息打印到终端中,然后将其粘贴到我的电子表格中。然而,大约进行到一半时,我被告知内存不足,然后它就停止了。

Out of memory!- 没有其他的

我搜索了一下,但找不到任何关于终端具体打印此内容的内容。我可以找到与 Linux 相关的帖子,说是内存不足,但我想确定一下。我试过让它写入 .txt 文件而不是打印到终端中,但没有成功。

我该如何修复这个问题并让 Perl 脚本完全运行?

答案1

不用与 perl 优化作斗争,而是使用这样的包装器:

wrapper.sh

#!/bin/bash

for i in `ls $1`
do
    echo $i
    <perl script> $i
done

使用方法如下:

./wrapper.sh *.html

因此,perl 脚本不再在一次运行中循环遍历 7k 个文件,而是对每个文件都重新开始。

我还建议您将输出重定向到文件而不是屏幕。如果将终端(xterm、gnome-term 等)设置为无限制缓冲区/行,则可能会用尽所有内存。

相关内容