gpt4 book ai didi

perl - 如何消除 Archive::Zip 中的警告

转载 作者:行者123 更新时间:2023-12-02 08:34:25 25 4
gpt4 key购买 nike

我不想在提取存档时看到以下消息。

format error: file is too short at /usr/share/perl5/Archive/Zip/Archive.pm line 667.    
Archive::Zip::Archive::_findEndOfCentralDirectory('Archive::Zip::Archive=HASH(0x8acf47c)', 'IO::File=GLOB(0x8ac9d70)') called at /usr/share/perl5/Archive/Zip/Archive.pm line 581
Archive::Zip::Archive::readFromFileHandle('Archive::Zip::Archive=HASH(0x8acf47c)', 'IO::File=GLOB(0x8ac9d70)', 'some zip file') called at /usr/share/perl5/Archive/Zip/Archive.pm line 548

我想跳过一些损坏的文件。

最佳答案

弄乱 SIGWARN 处理程序或将 STDERR 输出重定向到空设备是非常不整洁的。

Archive::Zip 有一个函数来设置错误处理程序 Archive::Zip::setErrorHandler。默认情况下使用 Carp::carp,它会产生您所看到的输出。

您可以编写自己的替代品,例如将错误消息保存在一个数组中供以后检查,就像这样

my @errors;
Archive::Zip::setErrorHandler(sub { push @errors, $_[0] });

另外不要忘记检查函数的返回码,否则无法知道出现了问题。

关于perl - 如何消除 Archive::Zip 中的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23271624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com