Adam Spiers <[EMAIL PROTECTED]> writes:

> Regarding what to do about broken old base.pms ...

Is this problem still there? I think I fixed that one by adding
an additional use statement in Test::Unit::Assertion::Boolean, see:

http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/perlunit/src/Test-Unit/lib/Test/Unit/Assertion/Boolean.pm.diff?r1=1.2&r2=1.3

> 
> Piers Cawley ([EMAIL PROTECTED]) wrote:
> > Adam Spiers <[EMAIL PROTECTED]> writes:
> > > Nasty, isn't it?  Possible workarounds:
> > > 
> > >  1. Document it
> > >  2. Get `make install' to check for the brokenness and warn
> > >  3. Add `use Foo;' before every `use base qw(Foo);'
> > >  4. Provide a patch
> > > 
> > > 3. is the easiest but somehow I don't like it.
> 
> Nor me.
> 
> > 5. Don't use base at all, do:
> > 
> >     use vars qw/@ISA/;
> >     use Foo ();
> >     @ISA = 'Foo';
> > 
> > After all, it's worked for ages. Ugly though.
> 
> Yeah, really ugly :-(
> 
> > Or, in Makefile.PL:
> > 
> >     use ExtUtils::MakeMaker;
> > 
> >     # See lib/ExtUtils/MakeMaker.pm for details of how to influence
> >     # the contents of the Makefile that is written.
> > 
> >     my $PREREQ_PM;
> >     unless (eval "require 5.6.0") {
> >         $PREREQ_PM = {Class::Fields => 0};
> >     }
> >     else {
> >         $PREREQ_PM = {base => 0};
> >     }
> >      
> >     WriteMakefile(
> >         'NAME'         => 'Test::Unit',
> >         'VERSION_FROM' => 'lib/Test/Unit.pm', # finds $VERSION
> >         'PREREQ_PM'    => $PREREQ_PM,
> >     );
> > 
> > Admittedly, this assumes that the 'base' in Class::Fields on CPAN has
> > the bugfix, which someone (without perl 5.6.0) needs to check.
> 
> I like this approach.  It's the least intrusive, allows us to use nice
> syntax, and is mostly transparent to users.
> 
> Christian Lemburg ([EMAIL PROTECTED]) wasn't convinced though:
> > Why rely on that? Where will it break next?
> 
> Nowhere.  I've been using the fixed version for ages, and it's fine.
> The new syntax is much nicer, and I wouldn't like to fight the natural
> course of progress just because of a mistake made in the past.
> 
> Matthew Astley ([EMAIL PROTECTED]) suggested:
> > Another solution, can the makefile figure out from the version number
> > of base.pm whether you're running on a broken system or not, and apply
> > 
> >   find blib -name '*.pm' | \
> >   xargs perl -i -pe 's{^\s*use\s+base\s+(.+)} \
> >   {use $1 use vars (\@ISA); \@ISA = $1} .. 0'
> > 
> > to fix the problem? (I, um, changed it after I tested it...)
> 
> Self-modifying code!  I'd really rather avoid that if at all possible,
> we're not in the Dark Ages any more ;-)
> 
> _______________________________________________
> Perlunit-devel mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/perlunit-devel


_______________________________________________
Perlunit-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/perlunit-devel

Reply via email to