线程perl how can I append STDOUT of list form system call of perl script to a file导致了以下解决方案:use IPC::Run qw( run );
。在我的macos 10.14.6上运行perl 5.18.4,这引发了一个错误:Can't locate IPC/Run.pm in @INC (you may need to install the IPC::Run module)
。因此,在What's the easiest way to install a missing Perl module?之后,我做了
> cpan IPC::Run
<snip: 403 lines later>
Appending installation info to /Users/BNW/perl5/lib/perl5/darwin-thread-multi-2level/perllocal.pod
TODDR/IPC-Run-20180523.0.tar.gz
/usr/bin/make install -- OK
重启了我的MacBookPro我编辑了我的perl脚本bosswrap.pl
#!/usr/bin/perl
use strict; use warnings;
use IPC::Run qw( run );
但这显然又抛出了与之前相同的错误:
> bosswrap.pl
Can't locate IPC/Run.pm in @INC (you may need to install the IPC::Run module) (@INC contains: /sw/lib/perl5/darwin-thread-multi-2level /sw/lib/perl5 /sw/lib/perl5/darwin /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.4 /System/Library/Perl/5.18/darwin-thread-multi-2level /System/Library/Perl/5.18 /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level /System/Library/Perl/Extras/5.18 .) at /Users/BNW/u/kh/bin/bosswrap.pl line 3.
BEGIN failed--compilation aborted at /Users/BNW/u/kh/bin/bosswrap.pl line 3.
我做错了什么,或者更确切地说,我如何才能让它工作?
4条答案
按热度按时间vlju58qv1#
尝试以下操作:
ars1skjm2#
问题似乎是您将模块安装在用户目录 /Users/BNW/perl 5/lib 下,但您没有将该路径包含在Perl用于查找库的
@INC
数组中。一种方法是在 * bosswrap.pl * 程序中添加
@INC
到use lib
的安装路径:参见:
8gsdolmq3#
http://triopter.com/archive/how-to-install-perl-modules-on-mac-os-x-in-4-easy-steps/提供了一个深入的教程。据我所知,可能需要一些CPAN配置行,但是没有提供足够的代码来说明这是问题的原因。在任何情况下,这里是CPAN配置代码。
stszievb4#
如何在macos上安装Perl模块?
具有原生
arm64
和启用了rosetta的x86_64
的macOS计算机通过确保适用的Perl模块安装了Universal Binaries来避免指令集体系结构(伊萨)冲突。安装通用二进制Perl模块的一种方法如下:
有关其他详细信息,请参见Install & update a Perl module as "universal" (x86_64, arm64)?。