You have to call the attribute in an array context, like this

@values = $entry->get_value('attributename');

where 'attributename', is the name of a multi-valued attribute, like
'telephonenumber'.

Then iterate over the array to pull out the values, eg:

$value(@values) {

     print "attributename", $value, "\n":

}

There are better examples given in the FAQ,
http://search.cpan.org/~gbarr/perl-ldap/lib/Net/LDAP/FAQ.pod, and
Examples, http://search.cpan.org/~gbarr/perl-ldap/lib/Net/LDAP/Examples.pod.

Phil Lembo

On Fri, Dec 18, 2009 at 3:31 PM, Bruce Johnson
<john...@pharmacy.arizona.edu> wrote:
> I'm attempting to query our campus enterprise directory LDAP server, and
> it's got one attribute that has multiple entries per person.
>
> This is the code I'm using:
>
> --------------------------------------------------------------------------
> #!/usr/bin/perl
>
> use Net::LDAPS qw(:all);
> use Data::Dumper;
>
> #username and password for new enterprise directory stuff
> $iamlogin = '<redacted>';
> $iampasswd = '<redacted>';
> $searchBase = "ou=People,dc=eds,dc=arizona,dc=edu";
> $searchFilter = "emplID=<redacted>";
> # Connect to LDAPS port
> $ldaps = new Net::LDAPS(
>                '<redacted>',
>                port => 636,
>                capath => '/usr/share/ssl/certs/') or die "Certs problem!
> Cannot connect!\n";
>
> # Bind as NetID user
> $mesg = $ldaps->bind(
>        dn => "uid=$iamlogin,ou=App Users,dc=eds, dc=arizona, dc=edu",
>        password => $iampasswd);
> $mesg->code && die "Authentication failed: " . $mesg->error . "\n";
>
> $mesg = $ldaps->search (  # perform a search
>                               base => $searchBase,
>                               filter => $searchFilter,
>                     attrs => ["*", "+"]
>                          );
>
>                $mesg->code && die $mesg->error;
>
>
> $nums = $mesg->count;
>
> print Dumper($mesg);
> exit;
> --------------------------------------------------------------------------
>
> This works, but returns only one instance of the desired attribute.
>
> How do I get all of them?
>
> --
> Bruce Johnson
> University of Arizona
> College of Pharmacy
> Information Technology Group
>
> Institutions do not have opinions, merely customs
>
>
>

Reply via email to