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

Reply via email to