Mehmet wrote on 08/11/2011 10:54 AM: > Hi everyone, > > I am new to perl-ldap and like it very much, however I have a problem I > cannot solve by myself (or using google). > > I have some attributes with multiple values in the same entry, such as: > > description: abc > description: def > description: ghi > ... > > I perform a search using a base & filter, then try to list all attributes > and their values in a foreach loop: > > foreach my $entry ($searchResults->entries) { > foreach my $attr ($entry->attributes) { > for ($attr) { if (/^description$/) { printf ("%s -> %s \n", > $attr, $entry->get_value($attr) ); } > } > } > > the reason I am using for ($attr) is that I have several checks in the loop, > which I omit here for readability. > > Now the problem: I noticed that $entry->attributes lists each attribute only > once! Therefore, I can only print a single value, which happens to be on the > top of the list (only "abc" in the above example). >
You probably want instead something like: for my $entry ($searchResults->entries) { for my $attr ($entry->attributes) { if ($attr eq 'description') { printf("%s -> %s\n", $attr, join(", ", $entry->get_value($attr)) ); } } } -- Peter Karman . http://peknet.com/ . pe...@peknet.com