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

I need to decode BiSON-encoded data and found a module on CPAN that purports to decode it, Data::BISON, but it is broken on any recent version of Perl, from 5.10 and up. Is it possible to get it to work somehow, or is broken because of a fundamental design flaw? I don't have any hope of the author issuing a fix because the last update was 6 years ago and the tests have been failing for 5 years.
  • Comment on Is it possible to make Data::BISON work on perl >= 5.10

Replies are listed 'Best First'.
Re: Is it possible to make Data::BISON work on perl >= 5.10
by Corion (Patriarch) on Dec 23, 2012 at 10:15 UTC

    You don't tell us how it fails, so what do you expect us to do?

    It seems that the error message is:

    Recursive inheritance detected in package 'Data::BISON::Base' at /expo +rt/home/cpant2/.cpan/build/Data-BISON-v0.0.3-yJ_1N5/blib/lib/Data/BIS +ON/Base.pm line 110.

    ... so I expect that the sane approach would be to eliminate that recursive inheritance first.

      Well, in fairness I mentioned the CPAN tester reports, which a linked on the distribution page. I looked at the code but I have no clue what to even try.

        My guess is, from looking at Data::BISON::Base, as the error message says, that the following piece in the custom method creator is to blame:

        ... { local @ISA = @{ $caller . '::ISA' }; $self->SUPER::__parse_args( $args ); } ...

        Most likely because the author didn't bother to clean up @ISA properly.

        But then, looking at the whole code, I wouldn't touch it because I don't understand why the author chose to do all method creation in a import subroutine instead of plainly declaring the methods outside and then using glob assignments to export them. Maybe you want to get in contact with the author to ask about the motivation and intent.