[Bioperl-l] different syntaxes for SeqI constructor and Factory constructor?
zhihua li
lzhtom at hotmail.com
Thu Dec 7 03:13:47 UTC 2006
Hi netters,
Recently I found this:
For constructing a new SeqI object, I had to write:
$seq_obj=Bio::SeqIO->new(
-file => '/home/myfile',
-format => 'Fasta'); #Note the dash before the two
arguments.
If I omitted the dash:
$seq_obj=Bio::SeqIO->new(
file => '/home/myfile',
format => 'Fasta');
I'd get error:
MSG: Unknown format given or could not determine it []
STACK Bio::SeqIO::new /usr/lib/perl5/site_perl/5.8.7/Bio/SeqIO.pm:377
So it seems to me that the dashes before the arguments are essential.
However, when I tried to build a factory for StandaloneBlast, I found the
other way around.
If the script had the dash:
$blast_obj=Bio::Tools::Run::StandAloneBlast->new(
-program => 'blastn',
-database => '/home/mydatabase');
I'd get the error message:
MSG: Unallowed parameter: - !
STACK Bio::Tools::Run::StandAloneBlast::AUTOLOAD
/usr/lib/perl5/site_perl/5.8.7/Bio/Tools/Run/StandAloneBlast.pm:433
STACK Bio::Tools::Run::StandAloneBlast::new
/usr/lib/perl5/site_perl/5.8.7/Bio/Tools/Run/StandAloneBlast.pm:400
If I left out the dash by saying:
$blast_obj=Bio::Tools::Run::StandAloneBlast->new(
program => 'blastn',
database => '/home/mydatabase');
Everyting is fine.
Now I'm confused. Why sometimes I have to add the dash, while sometimes I'm
not allowed to?
Thanks in advance!
_________________________________________________________________
与联机的朋友进行交流,请使用 MSN Messenger: http://messenger.msn.com/cn
More information about the Bioperl-l
mailing list