私は次のスクリプトを持っていますが、これは私が持っている2つの異なるPerlインストールで異なる動作をします。1つはPerl5.8.5で、もう1つはPerl5.8.8です。
スクリプトは次のとおりです。
#!/usr/bin/perl
use FindBin(qw($Bin));
use lib $Bin;
use lib "$Bin/../lib";
use XML::LibXML;
use strict; # quote strings, declare variables
use warnings; # on by default
use warnings qw(FATAL utf8); # fatalize encoding glitches
use open qw(:std :utf8); # undeclared streams in UTF-8
my $xml =<<EOS;
<?xml version="1.0" encoding="UTF8"?>
<foo>Привет, мир!</foo>
EOS
my $parser = new XML::LibXML;
my $doc = '';
eval { $doc = $parser->parse_string($xml); };
if ($@) {
die "Error: $@";
}
my $root = $doc->getDocumentElement();
print "XML after parsing: ", $root->toString(), "\n";
5.8.8 Perlインストールでは、次のようになります。
XML after parsing: <foo>Привет, мир!</foo>
5.8.5 Perlインストールでは、次のようになります。
XML after parsing: <foo>Привет, мир!</foo>
この点で、5.8.5インストールを5.8.8インストールのように動作させたいです。これは、Perlをアップグレードするだけの問題ですか、それとも特別なコンパイルフラグを設定するだけの問題ですか?