我如何 运行 来自 R 的带有特定模块的 perl 脚本?
How can I run a perl script from R with specific modules?
我可以从终端 运行 perl 脚本“myperlscript.pl”,没有任何问题。但是,如果我尝试从 RStudio 中 运行 相同的 perl 脚本,它会给我以下错误:
command <- "myperlscript.pl outputfile.txt"
system2('perl', command)
Can't locate Sort/Fields.pm in @INC (you may need to install the Sort::Fields module)
(@INC contains:
/Library/Perl/5.28/darwin-thread-multi-2level
/Library/Perl/5.28
/Network/Library/Perl/5.28/darwin-thread-multi-2level
/Network/Library/Perl/5.28
/Library/Perl/Updates/5.28.2
/System/Library/Perl/5.28/darwin-thread-multi-2level
/System/Library/Perl/5.28
/System/Library/Perl/Extras/5.28/darwin-thread-multi-2level
/System/Library/Perl/Extras/5.28) at myperlscript.pl line 4.
BEGIN failed--compilation aborted at myperlscript.pl line 4.
我在 /Users/admin/perl5/perlbrew/perls/5.26.2/lib/site_perl/5.26.2 中安装了 Sort::Fields 模块,使用终端可以正常工作,但 RStudio 中的 perl 似乎没有为该目录编制索引perl 模块 - 我尝试将它添加到 @INC 但不知何故我无法让它工作......有什么想法或想法吗?非常感谢帮助!
最好的,Heiko
您遇到的问题是您的 R 代码使用的是系统 perl (5.28) 而不是您的 pelbrew perl (5.26.2)。
您需要执行 system2('perl', command)
调用才能使用 perlbrew perl 而不是系统 perl。
要在你的 shell 激活 perlbrew perl 的地方执行此操作,请键入 which perl
这应该会给你 pelbrew perl 的完整路径。
将此完整路径作为第一个参数传递给 system2(--result of 'which perl'--, command)
。
我可以从终端 运行 perl 脚本“myperlscript.pl”,没有任何问题。但是,如果我尝试从 RStudio 中 运行 相同的 perl 脚本,它会给我以下错误:
command <- "myperlscript.pl outputfile.txt"
system2('perl', command)
Can't locate Sort/Fields.pm in @INC (you may need to install the Sort::Fields module)
(@INC contains:
/Library/Perl/5.28/darwin-thread-multi-2level
/Library/Perl/5.28
/Network/Library/Perl/5.28/darwin-thread-multi-2level
/Network/Library/Perl/5.28
/Library/Perl/Updates/5.28.2
/System/Library/Perl/5.28/darwin-thread-multi-2level
/System/Library/Perl/5.28
/System/Library/Perl/Extras/5.28/darwin-thread-multi-2level
/System/Library/Perl/Extras/5.28) at myperlscript.pl line 4.
BEGIN failed--compilation aborted at myperlscript.pl line 4.
我在 /Users/admin/perl5/perlbrew/perls/5.26.2/lib/site_perl/5.26.2 中安装了 Sort::Fields 模块,使用终端可以正常工作,但 RStudio 中的 perl 似乎没有为该目录编制索引perl 模块 - 我尝试将它添加到 @INC 但不知何故我无法让它工作......有什么想法或想法吗?非常感谢帮助!
最好的,Heiko
您遇到的问题是您的 R 代码使用的是系统 perl (5.28) 而不是您的 pelbrew perl (5.26.2)。
您需要执行 system2('perl', command)
调用才能使用 perlbrew perl 而不是系统 perl。
要在你的 shell 激活 perlbrew perl 的地方执行此操作,请键入 which perl
这应该会给你 pelbrew perl 的完整路径。
将此完整路径作为第一个参数传递给 system2(--result of 'which perl'--, command)
。