http://qs1969.pair.com?node_id=628487


in reply to 'base' versus @ISA, why?

I ran into base.pm's flakiness just yesterday after sprinkling in the following debug line:

warn "RDBO version: $Rose::DB::Object::VERSION;"

Because that caused base.pm's dubious heuristic to indicate that there was no need to require Rose::DB::Object I saw an error message along the lines of...

Can't locate object method "mk_ro_accessors" via package "Foo" at basebug.plx line 11.

The workaround:

END { no strict; warn "RDBO version: " . ${ 'Rose::DB::' . 'Object::VERSION' }; }

The $Foo::VERSION scalar doesn't have to be assigned to; its mere presence in the code as a package global gives it a stash entry and an undefined value. That's apparently enough for base.pm.

base.pm is a good idea, but the implementation is problematic.

--
Marvin Humphrey
Rectangular Research ― http://www.rectangular.com

Replies are listed 'Best First'.
Re^2: 'base' versus @ISA, why?
by adrianh (Chancellor) on Jul 25, 2007 at 12:35 UTC
    I ran into base.pm's flakiness just yesterday

    Which version of Perl? (and did you submit a bug report :-)