Я тестировал использование XML :: Simple с perl. Я могу распечатать некоторые данные, но не могу распечатать имя файла и размер байта в моем образце. Может кто-нибудь показать мне, как извлечь следующую информацию из этого XML-файла?
Хотелось бы получить:
- каталог файлов:
/storage/foobar/test/queues/20110731
- имя файла:
myfilename-00
- размер файла:
1234567891
Пока я могу получить каталог файлов, но имя файла дает мне хэш-значение, а получение размера файла не работает.
Вот код на данный момент:
use strict;
use warnings;
use XML::Simple;
use Data::Dumper;
my $xml = $ARGV [0];
for my $xs ($xml) {
#my $data = XMLin($xs, ForceArray => 0);
my $data = XMLin($xs, ForceArray => 1);
#my $data = XMLin($xs, ForceArray => [ qw (directory file path ) ]);
print Dumper ($data);
print "This is the DIRECTORY: $data->{path}\n";
print "This is the FILE: $data->{file}\n";
print "This is the FILE SIZE: $data->{size}\n";
}
Результат:
This is the DIRECTORY: /storage/foobar/test/queues/20110731
This is the FILE: ARRAY(0x8265c38)
Use of uninitialized value in concatenation (.) or string
This is the FILE SIZE:
Хранитель:
образец xml:
<?xml version="1.0" encoding="UTF-8"?>
<listing time="2011-10-04T02:33:44+0000" recursive="no" path="/storage/foobar/test/queues/20110731" exclude="" filter=".*" version="0.20.202.1.1101050227">
<directory path="/storage/foobar/test/queues/20110731" modified="2011-10-04T02:32:11+0000" accesstime="1970-01-01T00:00:00+0000" permission="drwx------" owner="unix_act" group="foobar"/>
<file path="/storage/foobar/test/queues/20110731/myfilename-00" modified="2011-10-03T04:47:46+0000" accesstime="2011-10-03T04:47:46+0000" size="123456789" app="3" blocksize="134217728" permission="-rw-------" owner="unix_act" group="foobar"/>
<file path="/storage/foobar/test/queues/20110731/myfilename-01" modified="2011-10-03T04:48:04+0000" accesstime="2011-10-03T04:48:04+0000" size="987654321" app="3" blocksize="134217728" permission="-rw-------" owner="unix_act" group="foobar"/>
</listing>