首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IO::Uncompress::Gunzip拒绝写入数组

IO::Uncompress::Gunzip拒绝写入数组
EN

Stack Overflow用户
提问于 2011-06-28 00:56:18
回答 1查看 232关注 0票数 1

我正在尝试使用IO::Uncompress::Gunzip模块。根据它的文档,我应该能够提供数组引用的输出变量,让它将结果推送到该数组(documentation here)。当我执行以下操作时:

代码语言:javascript
复制
my $blah = [];
gunzip $blah_gz => $blah or die("gunzip failed: $GunzipError\n");

Gunzip只是将包含文件所有行的单个标量推送到$blah上,本质上将其第一个元素视为标量引用。我做错了什么吗?这是一个bug吗?这是预期的行为吗?不管是什么,都很烦人。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-28 01:04:00

这就是它应该做的事情。根据文档,为输出提供数组引用将解压缩内容,然后将其推送到所提供的数组中。

也许您认为它应该做的是将未压缩输出的行放入数组中?如果你想要这样的东西,可以这样做:

代码语言:javascript
复制
gunzip $blah_gz => \ $a_scalar_var  or die "blah...\n";
my @contents = split($/, $a_scalar_var);

请注意,内容没有尾随的新行,因此在处理它时不需要对每一行执行chomp操作,但在打印输出时必须使用say或执行类似print $_, "\n"的操作。

如果您内存不足,并且不希望保留数据的三个副本,并且$blah_gz$a_scalar_var不会退出作用域(例如,当您从执行解压缩的函数返回时),您可以添加:

代码语言:javascript
复制
undef $blah_gs;
undef $a_scalar_var;

在生成@contents之后。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6496241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档