我想通过使用系统命令(或任何其他方式)从perl运行程序。
系统( “samtools”);
我认为它应该将此传递给shell但它抱怨,当我运行它时,不能执行“samtools”文件或目录不存在。我已尝试过许多其他不同的程序,例如
系统( “velveth”);
它运作正常但不是这个(samtools)。你们中间有人面临这个问题吗? 我真的很困惑。
答案 0 :(得分:2)
您可以为该文件位置提供完整路径。
示例:
system( "/usr/bin/perl -de 1");
答案 1 :(得分:0)
尝试将Linux命令放在``字符中。也会起作用。
答案 2 :(得分:0)
您是否手动修改了当前shell中$path
的{{1}}?
由于samtools
启动了一个新的子shell来运行您的命令,因此如果system
中不存在samtools
,则必须自己附加.bashrc
的搜索路径。检查:
perl -e 'system("echo \$PATH")'
和
echo $PATH
看看是否有任何差异。