Andreas J. Koenig wrote: >>>>>> On Tue, 09 Sep 2008 05:03:25 -0700, Michael G Schwern <[EMAIL >>>>>> PROTECTED]> said: > > > I've uploaded a new alpha to deal with this. > > It still breaks Sub::Uplevel. Sub::Uplevel has lots of dependencies. I > won't smoke a Test-Simple that breaks Sub-Uplevel. Or if the fault is > on Sub-Uplevel, please let David Golden know. I'm pretty sure I have > reported this recently. Have I not?
Not that I'm aware of. I presume you mean this? t/05_honor_prior_override....1/7 # Failed test 'use Sub::Uplevel;' # at t/05_honor_prior_override.t line 53. # Tried to use 'Sub::Uplevel'. # Error: Global symbol "$VERSION" requires explicit package name at /private/var/local/cpan_shell/build/Sub-Uplevel-0.19_03-JKkppY/blib/lib/Sub/Uplevel.pm line 5. # Global symbol "$VERSION" requires explicit package name at /private/var/local/cpan_shell/build/Sub-Uplevel-0.19_03-JKkppY/blib/lib/Sub/Uplevel.pm line 6. # Global symbol "$VERSION" requires explicit package name at /private/var/local/cpan_shell/build/Sub-Uplevel-0.19_03-JKkppY/blib/lib/Sub/Uplevel.pm line 6. # Global symbol "@ISA" requires explicit package name at /private/var/local/cpan_shell/build/Sub-Uplevel-0.19_03-JKkppY/blib/lib/Sub/Uplevel.pm line 17. # Global symbol "@EXPORT" requires explicit package name at /private/var/local/cpan_shell/build/Sub-Uplevel-0.19_03-JKkppY/blib/lib/Sub/Uplevel.pm line 18. # BEGIN not safe after errors--compilation aborted at /private/var/local/cpan_shell/build/Sub-Uplevel-0.19_03-JKkppY/blib/lib/Sub/Uplevel.pm line 89. # Compilation failed in require at (eval 4) line 2. # BEGIN failed--compilation aborted at (eval 4) line 2. Number found where operator expected at t/05_honor_prior_override.t line 68, near "uplevel 1" (Do you need to predeclare uplevel?) Name "main::uplevel" used only once: possible typo at t/05_honor_prior_override.t line 68. Name "DB::single" used only once: possible typo at t/05_honor_prior_override.t line 16. # Failed test 'caller from uplevel subroutine calls custom routine' # at t/05_honor_prior_override.t line 84. # got: 'CODE(0x1801d08)' # expected: 'niam' # Looks like you failed 2 tests of 7. t/05_honor_prior_override.... Dubious, test returned 2 (wstat 512, 0x200) Failed 2/7 subtests Taking a knife to CORE::caller() and then calling someone else's functions and expecting them to work is not a good idea. After some poking around, the test fails because "use vars" depends on caller() and caller() is bleeding on the floor. It used to work because Test::More happened to load vars.pm before caller() got the knife. Now it doesn't, it uses our(). So this is definitely "fixage", the test should never have worked. The goal of the test seems to be to detect that a customized caller() routine is not blown away by Sub::Uplevel. A much safer way to do that is to have your customized caller() just flick a file-scoped variable when it gets called and look for that change. -- The mind is a terrible thing, and it must be stopped.