philosophia has asked for the wisdom of the Perl Monks concerning the following question:

Is there something wrong with the way I coded this ldap search? It only seems to return one entry ($count=1).
$res = $ldap->search( base => "ou=mail aliases,dc=mydomain,dc=com", filter => "(&(mailHost=lists.mydomain.com)(owner=username))", attrs => [ 'uid', 'mail' ], ); $res->code() && die $res->error(); $entry = $res->entry(0); die("Could not look up LDAP entry") if ( !$entry ); @entries = $res->entries; $count = $res->count; foreach $entry (@entries) { print "dn: " . $entry->dn() . "\n"; @attrs = $entry->attributes(); foreach $attr (@attrs) { printf( "\t%s: %s\n", $attr, $entry->get_value($attr) ); } }

Something seems to be wrong with this ldap search because I know that there are many entries in our directory that match that filter - i.e.,
ldapsearch -b "ou=mail aliases,dc=mydomain,dc=com" -D cn=manager,dc=my +domain,dc=com -w 'password' "(&(mailHost=lists.mydomain.com)(owner=us +ername))"

returns many entries.

Replies are listed 'Best First'.
Re: ldap search returns only one entry
by hipowls (Curate) on Jan 10, 2008 at 22:09 UTC

    You don't say which LDAP module you are using. How is $ldap created?

      my $ldap = Net::LDAPS->new( $::ldapserver, verify => 'none', async => 0 );

      Net::LDAPS