Subject: | Bug in Bio::Grep::Root.pm |
I am using Bio::Grep v. 0.10.3 on a Windows XP machine with ActiveState
Perl v. 5.8.8. I was having issues trying to generate a database. Here
is the error message that I was receiving.
------------- EXCEPTION Bio::Root::BadParameter -------------
MSG: Variable looks not valid.
STACK Bio::Grep::Root::_check_variable c:/perl/site/lib/Bio/Grep/Root.pm:126
STACK Bio::Grep::Root::is_path c:/perl/site/lib/Bio/Grep/Root.pm:44
STACK Bio::Grep::Backend::BackendI::_copy_fasta_file_and_create_nfo
c:/perl/site/lib/Bio/Grep/Backend/BackendI.pm:497
STACK Bio::Grep::Backend::BackendI::_prepare_generate_database
c:/perl/site/lib/Bio/Grep/Backend/BackendI.pm:842
STACK Bio::Grep::Backend::Agrep::generate_database
c:/perl/site/lib/Bio/Grep/Backend/Agrep.pm:158
STACK toplevel test_agrep.perl.pl:13
-------------------------------------------------------------
Turns out that the absolute path I was trying to use had spaces in it,
and the function Bio::Grep::Root::_check_variable with the regex 'path'
does not allow for spaces in the filename, which is hard to get around
with perl running on Windows not in Cygwin. The fix to this is simple
for the next release. Line 109 in Bio::Grep::Root::_check_variable
needs to be changed to:
"'path' => qr{ ( \A [\w.\-/\\: ]+ \z ) }xms,"
where there is now a space after the colon to allow spaces in filenames.
Thanks!