Hi Graham,
thanks for your hint. I found it. The correct syntax was
my $mesg1=$backendConn->modify($dn, replace => [$attr, $values]);
The problem was, that $values was iso-8859-1 encoded. After decoding it,
it works.
Thanks again
Oliver
Graham Barr schrieb:
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