如何查看Archive::Tar的写入是否成功?

How to check if Archive::Tar's write is successful?

我有上个月的月度脚本 运行 存档文件。我正在使用 Archive::Tar 生成存档。如何检查对 ->write 方法的调用是否成功?

以下是否有效?我还没有成功 $tar->write()

unless ($tar->write( $name . '.tar.xz', COMPRESS_XZ )) {
    die("cant write tar"); # or any other doings instead
}

是的,您问题中的代码将捕获 ->write 内的任何错误。

Archive::Tar 的文档没有指定 write 的 return 值是什么(除非没有提供参数,这里不是这种情况)。但是,在错误的情况下查看 the code of the modulewrite returns undef,在成功的情况下查看真值:

注意,如果出现问题,Archive::Tar returns undef,那么它也会打印错误信息(除非你将$Archive::Tar::WARN设置为0 通过 $Archive::Tar::WARN = 0)。如果您想根据错误执行特定操作,可以使用 ->error 方法访问错误消息。