我有一些奥秘的perl代码,用于计算两个字符串之间的距离。
我有创建和对齐字符串等的R代码。我需要从R数万次调用Perl代码。我使用system()
。
似乎每次我从R调用system('perl ...')
时,R都会打开一个新的外壳。我无法弄清楚如何使R简单地将所有命令发送到同一shell或在打开外壳并运行system
调用后立即关闭外壳。最终,我收到一条too many open files
消息,一切都崩溃了。
这是一个简单的示例,其中包含理论上的Hello World脚本:
for (i in seq_along(1:10000)){
system('perl hello.pl')
}
system(perl...)
后没有显示打开的额外连接。 我正在使用macOS v10.13.2,R v3.5.2,Rstudio v1.1.456。
如何使R不会耗尽空间并运行对Perl的所有调用? (这可能甚至不是要问的确切问题。)
答案 0 :(得分:1)
按照Dirk Eddelbuettel的建议,我将所有可能的参数对都写到了一个兆行的txt文件中,并使用bash脚本来遍历txt文件并在每行上运行perl脚本。由于参数是字符串,因此这是一种可行的解决方案。最后它确实起作用。