【问题标题】:open3: exec of failed at perl 5.18.2open3:perl 5.18.2 的执行失败
【发布时间】:2018-06-15 07:05:18
【问题描述】:

我编写了使用Archive::SevenZip 模块压缩文件的 perl 脚本。

我收到了这个错误

open3: exec of 7z -y -bd l -slt "Filelocation" 在 /usr/local/share/perl/5.18.2/Archive/SevenZip.pm 失败。

我无法解决这个问题。

【问题讨论】:

  • 如果不看到您的代码,我们如何提供帮助?请参阅:minimal reproducible example(但是,猜测 - 尝试用一些实际路径替换 Filelocation)。
  • 您是否安装了7z?它在你的路上吗?

标签: perl exec archive 7zip sevenzipsharp


【解决方案1】:

Archive::SevenZip 正在使用open3 来执行命令行实用程序7z。该消息表明对exec 的调用失败。

最可能的问题:7z 未安装在您的计算机上。

如果你认为这不是问题,

  1. 编辑perldoc -lm IPC::Open3命名的文件。
  2. 替换

    exec @cmd or do {
        carp "$Me: exec of @cmd failed";
    

    exec @_ or do {
        local($")=(" ");
        croak "$Me: exec of @_ failed: $!";
    };
    

    (此更改已存在于较新版本的 IPC::Open3 中。)

  3. 重新运行程序。
  4. 提供更详细的错误消息。

【讨论】:

  • 我检查了更改已经在我的系统中。我在我的机器上安装了 7z。“7zip 输出中出现意外行,希望没问题:[] at /usr/local/share/perl/5.18.2/Archive/SevenZip.pm 第 256 行, 第 7 行。”仍然有这个错误。文件中的行是 "if( $output[0] =~ /^----------\s*$/ ) { shift @output; } else { warn "Unexpected line in 7zip output ,希望没问题:[$output[0]]"; };"
  • Re "我检查了更改已经在我的系统中",您在 OP 中发布的错误消息显示其他内容。您使用的是由不同的perl 安装的perldoc,然后是您获得错误消息时使用的perl
  • 您现在询问的警告表明 7z 提供的输出与预期不同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-07
  • 2011-12-21
  • 1970-01-01
  • 2012-08-17
  • 2023-04-11
  • 2014-07-09
  • 2012-07-21
相关资源
最近更新 更多