5.8.1 Pain

Ovid on 2003-10-17T21:24:13

While working on the migration path towards 5.8.1, I find myself constantly stumbling over minor problems that are causing big problems. For a while, I've been trying to figure out why this weird pseudo-hash which is being exported all over the place (aargh! Encapsulation is being violated for performance reasons) isn't behaving nicely. As it turns out, it's because Class::MethodMaker has been subclassed to implement chained mutators, but the actual implementation overrode a private method whose behavior has changed.

In the process of debugging, I've tried to run the code under both 5.6.1 and 5.8.1 and confess() a bunch of Data::Dumper'ed data -- only to discover that both Carp and Data::Dumper have had their output formatting altered enough to make diffs rather problematic.

I now have most of the code running, though. I just need to track down one program runs which fine under 5.6.1 and segfaults under 5.8.1 ...


Diffing Data::Dumper

melopt on 2003-10-17T22:18:50

regarding diff's and Data::Dumper, there is a option in there to sort the keys of the hash dump's.

It works for me...

Re:Diffing Data::Dumper

rafael on 2003-10-17T22:33:55

or use YAML ;

Re:Diffing Data::Dumper

Ovid on 2003-10-17T22:34:14

I'm familiar with ordering the has keys. The problem stems from this note in the CHANGES file for Data::Dumper:

=item 2.11  (unreleased)

C<0> is now dumped as such, not as C<'0'>.

That's the problem that's killing me, but there's probably a simple setting that I overlooked :)

As a side note, the segfault was being caused by my having a PERL5LIB environment variable silently pointing to my personal CPAN directory. That directory has a version of Storable compiled for 5.6.1 which, as we know, is not binary compatible with 5.8.1.