Perl XML: простое чтение пар xml и выполнение чего-либо для каждой из них
У меня есть файл XML, который содержит следующий раздел:
<cptasks>
<copy file="file1.txt" to="folder1/folder21" />
<copy file="file2.txt" to="folder1/folder33" />
<copy file="file3.txt" to="folder1/folder4" />
<copy file="file4.txt" to="folder1/folder1" />
</cptasks>
Мне нужно разобрать только пары file/to в этом конкретном разделе и запустить на них функцию - т.е.
some_func_name(<file_value>,<to_value>)
Как я могу это сделать?
Заранее спасибо;
1 ответ
Решение
use XML::Simple;
my $cptasks = XMLin(qq~
<cptasks>
<copy file="file1.txt" to="folder1/folder21" />
<copy file="file2.txt" to="folder1/folder33" />
<copy file="file3.txt" to="folder1/folder4" />
<copy file="file4.txt" to="folder1/folder1" />
</cptasks>
~
);
for my $copy (@{$cptasks->{copy}}) {
some_func_name($copy->{file}, $copy->{to});
}