http://www.perlmonks.org?node_id=984212

reubs85 has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks,

I use bioperl a lot and have come across an issue with what appears to be an incompatibility between a couple of modules I am attempting to use. To set the scene, the first few lines of my script looks like this:

#!/usr/bin/perl use strict; use warnings; use Bio::Tools::Run::Alignment::TCoffee; use Bio::Tools::Run::StandAloneBlastPlus; # do loads of stuff... my $factory=Bio::Tools::Run::Alignment::TCoffee->new();

The error I'm thrown is this:

Use of uninitialized value $name in pattern match (m//) at /usr/share/ +perl5/Bio/Tools/Run/WrapperBase/CommandExts.pm line 499. ------------- EXCEPTION: Bio::Root::Exception ------------- MSG: Command 'run' not registered STACK: Error::throw STACK: Bio::Root::Root::throw /usr/share/perl5/Bio/Root/Root.pm:472 STACK: Bio::Tools::Run::WrapperBase::set_parameters /usr/share/perl5/B +io/Tools/Run/WrapperBase/CommandExts.pm:1203 STACK: Bio::Tools::Run::WrapperBase::new /usr/share/perl5/Bio/Tools/Ru +n/WrapperBase/CommandExts.pm:505 STACK: Bio::Tools::Run::Alignment::TCoffee::new /usr/share/perl5/Bio/T +ools/Run/Alignment/TCoffee.pm:612 STACK: /home/s0451486/usr/bin/t_coffeeTest.pl:13 -----------------------------------------------------------

The script always quits at the line where I try and use the program 'TCoffee' (a DNA alignment tool, in case anyone's wondering).

I had a play around with a dummy script and figured out that it doesn't like the two modules used in the example above together - it will always quit. But if I remove the Bio::Tools::Run::StandAloneBlastPlus module, the TCoffe one can now function as it should do.

Rooting deeper, both these modules use another module, called CommandExts.pm, so I am guessing that there is some internal shenanigans going on such that both cannot use this same module within the same script.

Is this assessment right? And is there some method of effectively dealing with something like this? Any general advice on this kind of issue would also be massively appreciated as well - I am still a Perl-baby, really (obviously). I tried some things with Module::Refresh but, as I'm not even sure if my diagnosis is correct, it didn't surprise me that I had no joy (yet) with a fix. Apologies if it's something really obvious/stupid.

Many thanks for any replies,