|Do you know where your variables are?|
I ran into base.pm's flakiness just yesterday after sprinkling in the following debug line:
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 $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.
Rectangular Research ― http://www.rectangular.com