Что-то у меня случился затык.
Я пытаюсь делать так:~~~~~~~
use XML::Simple;
use Cwd;
use Data::Dumper;
my $pwd = cwd; # get current directory
my $filename = 'Report.xml';
open my $output, '>', "$pwd/Out.txt";
open my $file, '<', $filename or die "Unable to open file ($pwd/$filename): $!\n";
my $xml = eval { XMLin($file) };
if ($@) {
die "Error while parsing xml file ($filename): $@\n";
}
print $output Dumper($xml);
close $file;
close $output;
~~~~~~~
Начало XMLки выглядит так:
~~~~~~~
<?xml version="1.0" encoding="Windows-1251"?>
<Report><Lang>ru</Lang>
<Page><Title>Отчёт</Title><Icon>112</Icon>
<Item><Title>Версия</Title><Icon>112</Icon><ID>257</ID><Value>AIDA64 v1.70.1400/ru</Value></Item>
~~~~~~~
Файл в cp1251, проверял нотпадом++.
Однако в Out.txt получается так:
~~~~~~~
VAR1 = {
'Lang' => 'ru',
'Page' => [
{
'Item' => [
{
'ID' => '257',
'Value' => 'AIDA64 v1.70.1400/ru',
'Icon' => '112',
'Title' => "\x{412}\x{435}\x{440}\x{441}\x{438}\x{44f}"
},
~~~~~~~
При этом нотпад++ говорит, что кодировка ANSI.
Грабли где-то в недрах винды, вот только какие и почему вообще - не ясно.
Код пишу в padre, сам перл такой:
C:\Users\Insane>perl -v
This is perl 5, version 14, subversion 2 (v5.14.2) built for MSWin32-x86-multi-t
hread
Copyright 1987-2011, Larry Wall
Умные люди, подскажите, где я неправ?