in reply to Re: Re: Package module inclusion weirdness
in thread Package module inclusion weirdness

This is a bug in the Q::S module. It appears to be assuming features of a new version of base.pm but doesn't spell out the requirements for such a version in its dependancies. Please report this bug to the author.

The Superpostions.pm code does: use base 'Quantum::Superpositions::Conj'; and the documentation for base.pm says:

use base qw(Foo Bar); [...is...] Roughly similar in effect to BEGIN { require Foo; require Bar; push @ISA, qw(Foo Bar); }
and clearly "require Quantum::Superpositions::Conj" would fail since there is no Conj.pm file.

The documentation for (my version) of base.pm also notes:

If any of the base classes are not loaded yet, base silently requires them. Whether to require a base class package is determined by the absence of a global $VERSION in the base package. If $VERSION is not detected even after loading it, base will define $VERSION in the base package, setting it to the string "-1, defined by base.pm".
but Superpositions.pm never sets $Quantum::Superpositions::Conj::VERSION.

But since I doubt that Damian would release a module that just plain doesn't work at all, I assume that newer versions of base.pm also avoid require in other situations.

BTW, an easy fix for this problem is adding:

use vars qw($VERSION); BEGIN { $VERSION= $Quantum::Superpositions::VERSION }
after the "package Quantum::Superpositions::Conj" line of the modue.

        - tye (but my friends call me "Tye")