Skip Navigation

Perl less that 5.8.8 required

Fedora Core 4

Fedora Core 5

Sign up

If you sign up for an account on this web site you can customise elements of this site and subscribe to an email newsletter.

If you have an account on this web site you may login.

If you have an account on this site but have forgotten your user name and / or your password then you can request an account reminder email.

Perl less that 5.8.8 required

This bug was tracked down by Sam.

MKDoc does not work correctly distros with Perl 5.8.8 and Encode v2.18 — these casue errors as documented on the Fedora Core 5 page, this problems doesn't happen with older versions of Perl, see the Fedora Core 4 page for an attempt to generate the same error.

This is how Sam has described the problem:

It's a bug in the Encode module, which is a core Perl module used to do utf-8 encoding and decoding. Here's the behavior that MKDoc is relying on:

  $ perl -MEncode -MData::Dumper -e 'my $ref = Encode::decode_utf8({ foo =>
  1}); print Dumper($ref);'
  $VAR1 = {
'foo' => 1
};

That shows that Encode::decode_utf8 is passing a reference to a hash through un-mangled. That's what I get on my laptop, running Perl 5.8.6. However, here's what's happening on the machine that exhibits this problem:

$ perl -MEncode -MData::Dumper -e 'my $ref = Encode::decode_utf8({ foo =>
1}); print Dumper($ref);'
$VAR1 = 'HASH(0x9710c28)';

Now Encode::decode_utf8 is turning a hash into a stringified reference, causing the bug in MKDoc. That's Perl 5.8.8.

Sam has raised this at perlmonks see: http://perlmonks.org/?node_id=556003 and in the perl.unicode usenet group: http://www.nntp.perl.org/group/perl.unicode/3009

Up

This document was last modified by Chris Croome on 2006-06-19 02:19:56
MKDoc Ltd., 31 Psalter Lane, Sheffield, S11 8YL, UK.
Copyright © 2001-2006 MKDoc Ltd.