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 ...
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.