使用IPC::Run with timeout会导致修改只读值错误



我使用超时的IPC::Run,我得到一个奇怪的错误:Modification of a read-only value attempted at ${HOME}/perl5/lib/perl5/IPC/Run.pm line 1693.

use strict;
use warnings;
use IPC::Run qw(timeout);
​
my $job_command = '/bin/ls';
my $timeout_value = 20;
my $t = timeout($timeout_value);
IPC::Run::run($job_command, undef, undef, undef, $t);

有人有过这样的经历吗?

编辑添加,这是结果w/perl v5.16.3和v5.22.0 w/IPC::运行版本20200505.0

undef不是有效参数。

简单地使用

IPC::Run::run($job_command, $t);
测试:

use IPC::Run qw( run timeout );
run([ 'perl', '-e', 'sleep' ], timeout(5));

输出:

IPC::Run: timeout on timer #1 at /home/ikegami/usr/perlbrew/perls/5.32.0t/lib/site_perl/5.32.0/IPC/Run.pm line 2951.

最新更新