On Apr 13, 2009, at 3:50 PM, Oliver Dörr wrote:

Hmmm,

that does also not work. $mesg1->error shows "Protocol error " and $mesg1->code = 2

No hint, in LDAP server log

Hm, it should have worked. can you turn on debug with $backendConn- >debug(15); just before you call ->modify so we can see what it being sent to the server

Graham.



Another idea?
Oliver


Steiner, Ross schrieb:
Oliver,

I think the following should work (pass a reference to an array, not an array):

my $mesg1=$backendConn->modify($dn,
                              replace => { $attr, $values }
                             );
Regards,
Ross

-----Original Message-----
From: Oliver Dörr [mailto:oli...@doerr-privat.de] Sent: Monday, April 13, 2009 2:41 PM
To: perl-ldap@perl.org
Subject: How to replace multiple values of an attribute

Hi,

I spent my whole afternoon searching for a solution for replacing all values of an attrbute by an array.

So what i got is basicly an reference $values to an array of my new values. I could iterate through the array using foreach my $value (@ $values) {...}

The code that works is:
my $mesg1=$backendConn->modify($dn,
replace => [$attr, ["Hello", "Test"]]
                                        );

But i need to be more flexible and tried today a lot of variations of...
my $mesg1=$backendConn->modify($dn,
                                       replace => [$attr, @{$values}]
                                        );

This gave me the error...
Attribute <one of the values in my array> was not found in the schema definition.
inside the LDAP Server

$attr is a string that contains the name of the attribut.

Could somebody help me?
Oliver





Reply via email to