perl - List::MoreUtils' each_array() 和 each_arrayref() 中的内存泄漏?

标签 perl

我刚刚使用 List::MoreUtils 中的 each_array() 和 each_arrayref() 发现了令人讨厌的内存泄漏。

这三行代码是每次运行执行四千次的子程序的一部分。
我的目标是为散列中已有的值提供正确的格式。我有固定数量的哈希键和每个哈希键的格式字符串。

my %hash = ();
# ...
my $two_arrays = each_arrayref( $field_list, $field_list_format );
while ( my ( $field, $format ) = $two_arrays->() ) {
    $hash{ $field } = sprintf $format, $hash{ $field };
}

如果我坚持 return;之前 my $two_arrays ... ,泄漏消失。同return;超过最后一行会使泄漏。

由于子程序是守护程序的一部分,我注意到内存( VIRT 和 RES )的持续增长。

我做错了什么吗?我不知道each_array() 或each_arrayref() 是否存在内存泄漏?
  • 列表::MoreUtil ( 版本 0.22 )
  • Linux 2.6.32-32-generic(Ubuntu 10.04)上的 Perl 5.12.1(带线程的 x86_64)
  • 最佳答案

    List::MoreUtil ( VERSION 0.22 ) 的日期是 2006 年 7 月,也就是 5 年前。当前版本是0.32,这个版本是否仍然存在泄漏?在最近的几个版本中修复了几个内存泄漏:http://cpansearch.perl.org/src/ADAMK/List-MoreUtils-0.32/Changes

    关于perl - List::MoreUtils' each_array() 和 each_arrayref() 中的内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6438266/

    相关文章:

    regex - Perl - 用于查找和替换不属于字符实体的&符号的正则表达式

    perl 配置和 block

    perl - Spreadsheet::Read 的问题

    perl - 如何在批量 pod 转换中包含 pl 文件?

    asp.net - Perl 网络爬虫如何跟踪 ASP.NET 回发?

    perl - 无法安装 perl 模块 opensuse 12.2

    Perl:导出器的问题

    linux - 使用 Perl 获取分块数据的元素

    perl - 用 Perl 中的 HTML 副本替换特定的内联 CSS

    linux - wkhtmltoimage 将 html 转换为图像 Perl 和 Centos