Subject: | IO::All cannot be used nicely in superclasses |
FileA: foo.pm
----
package foo;
use lib('.');
use base qw(bard);
----
FileB: bard.pm
----
package bard;
use IO::All;
----
All fairly harmless so far?
Show quoted text
> perl -cw foo.pm
Spiffy.pm must be loaded before calling 'use base' or 'use mixin' with a
Spiffy module. See the documentation of Spiffy.pm for details.
at /home/shahsag/my_tree/links/cpan/lib/IO/All.pm line 2
Compilation failed in require at /home/shahsag/my_tree/links/cpan/lib/IO/All.pm line 2.
BEGIN failed--compilation aborted at /home/shahsag/my_tree/links/cpan/lib/IO/All.pm line 2.
Compilation failed in require at bard.pm line 3.
BEGIN failed--compilation aborted at bard.pm line 3.
Compilation failed in require at (eval 1) line 3.
...propagated at /sbcimp/run/pd/perl/5.8.5/lib/base.pm line 85.
BEGIN failed--compilation aborted at foo.pm line 4.
Presumably this is a documented requirement of Spiffy which IO::All uses. But imho it should be possible to do the above with IO::All otherwise the usefulness of the module is _greatly_ reduced. I can't use it in my latest software unless i start putting use IO::All statements in my subclasses before the use base... yuck. Esp since the subclasses don't actually use IO::All.