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



         

LDAP: сложная служба каталогов - часть 20


/i> I

Удаляет указанный атрибут с заданным значением.

delete => {Sattrname => []} delete => [Sattrnamel, $attrname2. . . ]

replace => {Sattrname => Sattrvalue}

Удаляет атрибут или набор атрибутов независимо от их значений.

Действует, как add, только заменяет текущее значение указанного атрибута. Если Sattrvalue является ссылкой на пустой анонимный список ([]), метод становится синонимом для приведенной выше операции удаления.

Обязательно обратите внимание на знаки пунктуации в предыдущей таблице. Некоторые параметры принимают ссылки на анонимные хэши, другие - на анонимные массивы. Если их перепутать, трудностей не миновать.

Можно объединять несколько таких параметров в одном и том же вызове modify, но это представляет собой потенциальную проблему. Когда modify вызывается с набором параметров, например, так:

$c->modify($dn, replace => {'!' => "Medfora"},

add => {'1' =N "Boston"). add => {'1 => "Cambridge"});

нет никаких гарантий, что указанные операции добавления будут выполняться после замены. Если необходимо, чтобы операции выполнялись в определенном порядке, можно применять синтаксис, подобный только что рассмотренному. Вместо использования набора дискретных параметров можно передать единственный массив, содержащий очередь команд. Вот как это работает: Tiod:fy() принимает параметр changes, значение которого- список. Данный список считается набором пар. Первая половина пары - это операция, которую необходимо выполнить, вторая половина - ссылка на анонимный массив, содержащий данные для этой операции. Например, если мы хотим гарантировать, что операции из предыдущего фрагмента кода выполнятся в нужном порядке, то можем написать:

$c->Tiodify($dn. changes =>

[ replace -;" ['!' => "Kedfrr'd"].

add --> ['!' => "Boston"],

add =>['!' => "Caubndge"]

]);

Внимательно посмотрите на пунктуацию: она отличается от других параметров, которые приводились раньше.




Содержание  Назад  Вперед