in reply to quoting issue with system command

You probably intended to interpolate those variables (single quotes don't):

my $command = qq(c:\\blast\\bin\\blastall -p blastn -d "$hu_seq $hd_se +q" -i $contig -o $alignment);

OTOH, interpolating the file handle $alignment doesn't make much sense... (so what is that -o $alignment supposed to achieve?)

Replies are listed 'Best First'.
Re^2: quoting issue with system command
by lomSpace (Scribe) on May 12, 2009 at 23:07 UTC
    -o mean print results to an output file. In this case that is $alignment.

      but $alignment is a Perl file handle (that you explicitly opened), and you can't pass Perl file handles to other programs via system() arguments...  Maybe you just want to pass the respective output filename instead (the one you used in the open())?

      ... my $alignment = "$maid_dir\\${maid}_aln.out"; my $command = qq(c:\\blast\\bin\\blastall -p blastn -d "$hu_seq $hd_se +q" -i $contig -o $alignment);