У меня есть некоторый загадочный Perl-код, который вычисляет расстояние между двумя строками.У меня есть R-код, который создает и выравнивает строки и т. Д. Мне нужно вызывать Perl-код из R десятки тысяч раз.Я использую system()
.
Похоже, каждый раз, когда я звоню system('perl ...')
из R, R открывает новую оболочку.Я не могу понять, как заставить R просто отправить все команды в одну и ту же оболочку или закрыть оболочку сразу после ее открытия и запуска вызова system
.В конце концов я получаю сообщение too many open files
и все разваливается.
Это простой пример с теоретическим сценарием Hello World:
for (i in seq_along(1:10000)){
system('perl hello.pl')
}
- showConnections (all = T)не показывает дополнительное открытое соединение после однократного запуска
system(perl...)
. - system2 вообще не работает (хотя я не уверен, что это поможет).
Я на macos v10.13.2, R v3.5.2, Rstudio v1.1.456.
Как заставить R не исчерпать пространство и выполнить все вызовы Perl?(Это может быть даже не точный вопрос.)