Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

Serious Bug in latest Data::Dumper under 5.6.1

by demerphq (Chancellor)
on Oct 23, 2003 at 16:39 UTC ( #301633=perlmeditation: print w/replies, xml ) Need Help??

Hi, this is just a heads up about a bug report I just filed to p5p and the maintainer of Data::Dumper. If you set $Data::Dumper::Sortkeys=1 and do not set $Data::Dumper::Useperl=1 under 5.6.1 (win32 at least) you will end up with either erroneous data or a segfault. If you set both at the same time this problem doesnt arise.

Note that this bug does not appear to affect 5.8.0 at all.

use Data::Dumper; use strict; use warnings; $|++; printf "D::D version %s\n",Data::Dumper->VERSION; for my $sk (0,1) { print "\$Data::Dumper::Sortkeys=$sk\n"; $Data::Dumper::Sortkeys=$sk; for my $up (1,0) { print "\$Data::Dumper::Useperl=$up\n"; $Data::Dumper::Useperl=$up; my %rev; my %name; print "Dumper:\n",Dumper(\%rev,\%name),"\n"; } } print "Done\n"; __END__ D::D version 2.121 $Data::Dumper::Sortkeys=0 $Data::Dumper::Useperl=1 Dumper: $VAR1 = {}; $VAR2 = {}; $Data::Dumper::Useperl=0 Dumper: $VAR1 = {}; $VAR2 = {}; $Data::Dumper::Sortkeys=1 $Data::Dumper::Useperl=1 Dumper: $VAR1 = {}; $VAR2 = {}; $Data::Dumper::Useperl=0 Use of uninitialized value in print at c:\temp\ line 15. Dumper: $VAR2 = {};

I post this only as a public service, as I know many people here depend on DD in many ways, and this is a serious bug that is not picked up by the test suite.



    First they ignore you, then they laugh at you, then they fight you, then you win.
    -- Gandhi

Replies are listed 'Best First'.
Re: Serious Bug in latest Data::Dumper under 5.6.1
by simonflk (Pilgrim) on Oct 24, 2003 at 17:19 UTC

    I get the segfault with perl 5.6.1 on solaris. But strangely, if I change the line:

    print "Dumper:\n",Dumper(\%rev,\%name),"\n";


    my $dumped = Dumper(\%rev,\%name); print "Dumper:\n",$dumped,"\n";

    It works fine. I can't see why that should make any difference.

    -- simonflk


    simonf$ perl -MData::Dumper -le 'print Data::Dumper->VERSION' 2.12_01

    Update: Tested on Win32, with ActiveState's D::D 2.121 PPM. Same behaviour - using Dumper() in scalar context avoids segfault.

Re: Serious Bug in latest Data::Dumper under 5.6.1
by IlyaM (Parson) on Oct 27, 2003 at 12:40 UTC
    Similar problem can be reproduced on perl 5.8.0 too. Minimal test case:
    use Data::Dumper; $Data::Dumper::Sortkeys = sub { [ sort keys %{$_[0]} ] }; print Dumper({}, {});

    Ilya Martynov,
    CTO IPonWEB (UK) Ltd
    Quality Perl Programming and Unix Support UK managed @ offshore prices -
    Personal website -

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://301633]
Approved by broquaint
Front-paged by BrowserUk
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (2)
As of 2023-01-31 07:32 GMT
Find Nodes?
    Voting Booth?

    No recent polls found