From: Chris R. <chr...@me...> - 2001-04-30 07:27:05
|
David Richards <d.r...@qu...> wrote: > To answer my own question, and after looking up the constant value, it > seems the problem is that on that particular entry the attribute > 'mailListModerator' did not exist. > > So, it seems the attribute must exist to do the full delete. So, anyway > to force the delete? ie., just ignore it if the attribute does not > exist? or do I have to find out if the attributes are there? That's correct - it is an error to delete an attribute that doesn't exist. When you get the error back the server ignores the entire modify operation you sent it, so you need to make sure the error doesn't happen. Another approach, if you are using LDAPv3 (note Net::LDAP does not use LDAPv3 by default) is to use a 'replace' with your attribute name and no values. In LDAPv3, this is defined to always work even if that attribute doesn't exist in the entry. ie: my $mesg = $ldap->modify( $entry, replace => { %qv_del_arry } ); But make sure you are using LDAPv3, because that is defined to *not* work in LDAPv2. (A nice incompatibility between LDAPv2 and LDAPv3.) Cheers, Chris |