Perlbrew 不能 运行 IPC::System::Simple 需要 Fatalised/autodying system() 的简单脚本
Perlbrew cannot run simple scripts IPC::System::Simple required for Fatalised/autodying system()
我是 perlbrew 的新用户,因为我希望在 Ubuntu 上升级到 perl 5.30.0。
我完成了
perlbrew init
perlbrew install perl-5.30.0
perlbrew switch perl-5.30.0
所以我尝试运行这个测试脚本:
#!/usr/bin/env perl
use strict;
use warnings FATAL => 'all';
use feature 'say';
use autodie ':all';
但这给出了长错误
IPC::System::Simple required for Fatalised/autodying system() at /home/con/Scripts/say.pl line 6.
main::BEGIN() called at /home/con/Scripts/say.pl line 6
eval {...} called at /home/con/Scripts/say.pl line 6
BEGIN failed--compilation aborted at /home/con/Scripts/say.pl line 6.
Command exited with non-zero status 2
我认为库(尤其是标准库)应该通过 perlbrew 自动加载?我怎样才能得到这个简单的脚本 运行?
我在非 perlbrew Perl 上遇到完全相同的错误。似乎 autodie requires IPC::System::Simple 当 运行 在致命警告或 :all
下时,但在安装过程中不需要它。
从 autodie 我们看到它的记录行为
If system
is specified as an argument to autodie
, then it uses
IPC::System::Simple
to do the heavy lifting. See the description of that
module for more information.
所以确实需要为 :all
标签安装 IPC::System::Simple(这意味着 system
)。
令我感到好奇的是,核心功能需要一个非核心模块,而且也很安静(在安装时没有抱怨)。
根据@ikegami 的说法,对我有用的解决方案:/home/con/perl5/perlbrew/perls/perl-5.30.0/bin/perl -e'use IPC::System::Simple'; /home/con/perl5/perlbrew/perls/perl-5.30.0/bin/cpan IPC::System::Simple; /home/con/perl5/perlbrew/perls/perl-5.30.0/bin/perl -e'use IPC::System::Simple'
当然,对于以后的任何人来说,这对您来说都会略有不同,因为您的目录设置可能会有所不同,并且用户名不是 con
我是 perlbrew 的新用户,因为我希望在 Ubuntu 上升级到 perl 5.30.0。
我完成了
perlbrew init
perlbrew install perl-5.30.0
perlbrew switch perl-5.30.0
所以我尝试运行这个测试脚本:
#!/usr/bin/env perl
use strict;
use warnings FATAL => 'all';
use feature 'say';
use autodie ':all';
但这给出了长错误
IPC::System::Simple required for Fatalised/autodying system() at /home/con/Scripts/say.pl line 6.
main::BEGIN() called at /home/con/Scripts/say.pl line 6
eval {...} called at /home/con/Scripts/say.pl line 6
BEGIN failed--compilation aborted at /home/con/Scripts/say.pl line 6.
Command exited with non-zero status 2
我认为库(尤其是标准库)应该通过 perlbrew 自动加载?我怎样才能得到这个简单的脚本 运行?
我在非 perlbrew Perl 上遇到完全相同的错误。似乎 autodie requires IPC::System::Simple 当 运行 在致命警告或 :all
下时,但在安装过程中不需要它。
从 autodie 我们看到它的记录行为
If
system
is specified as an argument toautodie
, then it usesIPC::System::Simple
to do the heavy lifting. See the description of that module for more information.
所以确实需要为 :all
标签安装 IPC::System::Simple(这意味着 system
)。
令我感到好奇的是,核心功能需要一个非核心模块,而且也很安静(在安装时没有抱怨)。
根据@ikegami 的说法,对我有用的解决方案:/home/con/perl5/perlbrew/perls/perl-5.30.0/bin/perl -e'use IPC::System::Simple'; /home/con/perl5/perlbrew/perls/perl-5.30.0/bin/cpan IPC::System::Simple; /home/con/perl5/perlbrew/perls/perl-5.30.0/bin/perl -e'use IPC::System::Simple'
当然,对于以后的任何人来说,这对您来说都会略有不同,因为您的目录设置可能会有所不同,并且用户名不是 con