我有以下脚本,它在我拥有的两个不同的 Perl 安装中表现不同。一个是 Perl 5.8.5,另一个是 Perl 5.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,还是设置一些特殊的编译标志?