Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

Re: Data::Dumper and utf8

by Krambambuli (Curate)
on Jan 30, 2010 at 08:43 UTC ( #820469=note: print w/replies, xml ) Need Help??

in reply to Data::Dumper and utf8

Although I'm not really sure why, the following code change seems to work:

#!/usr/bin/perl use strict; use warnings; use utf8; use Encode; use Data::Dumper; #$Data::Dumper::Useqq = 1; binmode STDOUT, 'utf8'; our $VAR1; my $data = ''; # this is a non-ACII a Umlaut my $dump = Dumper( encode( 'utf8', $data ) ); print $dump, "\n"; eval $dump; print $dump, "\n"; if ( $data eq $VAR1 ) { print " == equal\n"; } else { print " != not equal\n"; } #print Dumper( $VAR1 ), "\n"; print "Data: $data\nVAR1: $VAR1\n"; print "original is utf8 = '" . utf8::is_utf8( $data ) . "'\n"; print "restored is utf8 = '" . utf8::is_utf8( $VAR1 ) . "'\n";
It's Dumper that generates the problems, not the eval:

$VAR1 = "\x{e4}";

has no way to determine that there's something utf8-related in the string.

Update: There's some additional info available here.

Update2: Looks like the proper solution is actually to just set

$Data::Dumper::Useperl = 1;
According to the doc, you just have to use a Perl newer than 5.8.0 to have this working - it does work for me, Perl 5.10.0.


Replies are listed 'Best First'.
Re^2: Data::Dumper and utf8
by thedi (Acolyte) on Jan 30, 2010 at 12:21 UTC

    Replacing method Data::Dumper::qquote as suggested in the additional info did it for me. Many thanks.

    Perl is great - but the best thing about Perl is its monks!



Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://820469]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (5)
As of 2016-10-23 10:50 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (301 votes). Check out past polls.