从perl在linux中运行程序

时间:2013-03-12 09:41:56

标签: linux perl

我想通过使用系统命令(或任何其他方式)从perl运行程序。

系统( “samtools”);

我认为它应该将此传递给shell但它抱怨,当我运行它时,不能执行“samtools”文件或目录不存在。我已尝试过许多其他不同的程序,例如

系统( “velveth”);

它运作正常但不是这个(samtools)。你们中间有人面临这个问题吗? 我真的很困惑。

3 个答案:

答案 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

看看是否有任何差异。