1

有许多调试选项可用,但它说您需要使用 -DDEBUGGER 选项编译 Perl。我们如何在 Windows 上使用 ActivePerl 做到这一点。

另外,我遇​​到了 Perl 内存不足的问题。我正在读取一个包含 5 行的 XML 文件,但第二行对于 5 行来说太大了(文件大小为 4.3Mb)。它不解析第二行并且无法打印该行:

print $_ if /match/ ; #match does exists fyi

那我该如何解析第二行呢?

4

2 回答 2

1

您确定您的 ActivePerl 二进制文件尚未编译并提供调试支持吗?我知道 ActiveState 提供了一个图形调试器,其功能与本机 Perl 调试器几乎相同,所以我假设他们的二进制文件已经编译并支持调试。

您的第二个问题实际上与第一个问题无关,您可能应该将其作为一个单独的问题发布。但要尝试回答:我怀疑它“太大”无法解析,因为你只受系统内存的限制,而 4.3Mb 按现代标准来说并没有那么大,即使你的正则表达式相当复杂(它没有t 似乎是)。您确定要匹配的模式确实包含在该行中吗?

我有点迷茫,因为我不明白基于简单的正则表达式匹配从文件中打印多兆字节单行的意义,尤其是。当整个文件只有 5 行时。你到底想完成什么?

于 2008-12-30T16:08:14.213 回答
1

ActiveState 将其源代码贡献回主要的 Perl 源代码,因此您可以根据需要自行编译它。您只需使用与 ActiveState 相同的编译器。您应该能够看到perl -V从命令窗口运行时使用的所有编译选项 ActiveState。

但是,您可能不必这样做。如果您告诉我们您要完成的工作,我们可能会给您一个更好的答案。:)

于 2008-12-30T18:31:10.507 回答