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