Duas possibilidades que posso pensar:
O mais comum é que você está executando o script bash a partir de algo como o cron, onde seu script de perfil de usuário não foi executado e configurou $ PATH. Nesse caso, você pode especificar
system "/path/to/fastacmd ...
dentro do script perl para que não dependa do caminho, ou você pode definir o
$ENV{PATH}= "/my/custom/paths:$ENV{PATH}";
dentro do script perl, ou você pode corrigir o caminho no script bash carregando seus scripts de perfil:
source /etc/profile;
source ~/.profile;
source ~/.bash_profile;
Mas a outra possibilidade é que #!/usr/bin/perl
declarado em seu script não seja o mesmo perl que em seu PATH. Você pode verificar isso dizendo
which perl
Por exemplo, se você disser ./xREPredoTop.pl
, ele se tornará
/usr/bin/perl -w ./xREPredoTop.pl
mas se disser perl ./xREPredoTop.pl
, poderá tornar-se
/usr/local/bin/perl ./xREPredoTop.pl
e que um poderia ser configurado de forma diferente, de alguma forma que muda o caminho.