Perl для системного администрирования

Ремонт и диагностика электронных актуаторов.

Создание системы учетных записей для работы с пользователями - часть 12


XML::Simple предоставляет две функции. Вот первая (в данном контексте):

use XML::Simple;

use Data:: Dumper;

# нужен для вывода содержимого структура данных

Squeuefile = "addqueije. xml":

open(FILE, Squeuefiie) or die "Unable to open Squeuenle : $! \n":

read(FILE. Squeuecontents, -s FILE):

Squeue = XMLin("<queue>".Squejecontents."</qjeue>"):

Содержимое Squeue мы выводим подобным образом:

prim Da la : : Dumper->Di;

mp( [Sqi.euc ] ["uueuo" ])

Теперь это ссылка на данные, найденные в файле очереди, сохраненные в виде хэшей, ключами которого являются элементы <id>.

Мы используем именно такие ключи потому, что XML: : Simple позволяет распознавать в данных конкретные теги, выделяя их среди других в процессе преобразования. Если мы отключим эту возможность:

Squeue = XMLin("<queue>".$queuecontents."</queue>",keyattr=>[]);

то получим ссылку на хэш, где единственное значение является ссылкой на анонимный массив.

Такая структура данных не очень полезна. Этот параметр можно определять по собственному желанию:

$queue = XMLin("<queue>".$qucuecontents."</queue>",keyattr => ["login"]):

Замечательно? Теперь мы можем удалить элементы из очереди в памяти, после того как обработаем их всего в одной строке:

# например, Slogin - "bobf"; delete $queue->{account){$logi");

Если мы хотим изменить значение, перед тем как записать его на диск (скажем, мы работаем с нашей основной базой данных), то это тоже просто сделать:

# например, $login="wendyf"; $field="status"

$queue->{account}{$login}{$field}="created";

Создание XML-данных при помощи XML::Simple

Упоминание «записать его на диск» возвращает нас обратно к методу создания XML-данных, который мы обещали показать. Вторая функция из XML: : Simple принимает ссылку на структуру данных и генерирует XML-данные: rootname определяет имя корневого элемента, мы могли бы использовать XMLdecl. чтобы добавить объявление XML print XMLout($queue, rootname =>"queue"),




- Начало -  - Назад -  - Вперед -



Книжный магазин