[Bioperl-l] Problems when trying to persist a sequence in my BioSQL database using, BioPerl
Chris Fields
cjfields at uiuc.edu
Thu Jun 26 14:58:29 UTC 2008
On Jun 26, 2008, at 5:02 AM, Sendu Bala wrote:
> Hilmar Lapp wrote:
>> The real question is why your version of Perl doesn't seem to have
>> support for weak references (the reason for Scalar::Util failing to
>> load). Could you give details on your OS version and your version
>> of Perl (output of 'perl -V').
>
> Given that it seems to be perl 5.8.8, I'm guessing this is the
> RedHat/Fedora issue:
>
> http://search.cpan.org/~adamk/Task-Weaken-1.02/lib/Task/Weaken.pm
>
> Solutions:
> First try installing the latest version of Scalar::Util yourself:
>
> perl -MCPAN -e shell
> force install Scalar::Util
>
> (and see that it gets installed in a place that is checked before
> the Fedora version, or overwrites the Fedora version)
>
> If that doesn't work, you'll have to download and compile Perl
> yourself from source (don't use Fedora's installation system).
The last option isn't really viable. BioPerl is hard enough to
install w/o having to rebuild perl from scratch.
For the time being, we should add Task::Weaken to the requirements and
describe the issue within the installation notes, or at least link to
a reference to it.
>> The question for BioPerl is whether there is a fall-back mechanism
>> we might want to support if weak references aren't supported,
>> rather than rendering the genbank parser unusable. Sendu or Chris -
>> any thoughts on this?
>
> Firstly, Task::Weaken should get added to Build.pl as a requirement,
> so people get better error messages. If we do that, however, the
> whole of BioPerl doesn't get installed, never mind just the genbank
> parser not being usable.
>
> As for a fall-back mechanism, I'm not really sure how that would
> work. The easiest thing to do would be to just not deal with the
> species lines if Bio::Species doesn't work. Is that an acceptable
> fall-back? If not, more thought and discussion is needed. Make a
> proposal: what would you want to happen?
Skipping the Species isn't an option; it's an integral part of the
main BioPerl core and would be a PITA to deal with in bioperl-live,
let alone bioperl-db. We would have to wrap every Species-related
call in an eval{} and fallback to something else. Could we just set
DESTROY or a root cleanup callback to delete the child/parent node
references?
chris
More information about the Bioperl-l
mailing list