#r #perl
#r #perl
Вопрос:
Я могу запустить perl-скрипт «myperlscript.pl » с терминала без каких-либо проблем. Однако, если я попытаюсь запустить тот же perl-скрипт из RStudio, он выдает следующую ошибку:
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.
У меня есть модуль Sort::Fields, установленный в /Users/admin/perl5/ perlbrew/perls/5.26.2/lib/site_perl/5.26.2, и он отлично работает с помощью терминала, но кажется, что perl в RStudio не индексирует этот каталог для модулей perl — я попытался добавить его в @INC, но почему-то яне удается заставить его работать … есть мысли или идеи? Помощь очень ценится!
С наилучшими пожеланиями, Хайко
Комментарии:
1. Вы работаете в Windows или другой операционной системе?
2. Я работаю на macOS Big Sur
Ответ №1:
Проблема в том, что ваш R-код использует системный perl (5.28), а не ваш pelbrew perl (5.26.2).
Вам нужно выполнить system2('perl', command)
вызов, чтобы использовать perlbrew perl вместо системного perl.
Чтобы сделать это из вашей оболочки, где активирован ваш perlbrew perl, введите which perl
это, чтобы дать вам полный путь к вашему pelbrew perl.
Передайте этот полный путь в качестве первого аргумента system2(--result of 'which perl'--, command)
.