=head1 NAME

Net::LDAP::Search - Object returned by Net::LDAP search method

=head1 SYNOPSIS

  use Net::LDAP;
  
  $mesg = $ldap->search( @search_args );
  
  @entries = $mesg->entries;

=head1 DESCRIPTION

A B<Net::LDAP::Search> object is returned from the
L<search|Net::LDAP/item_search> method of a L<Net::LDAP>
object. It is a container object which holds the results of the search.

=head1 METHODS

B<Net::LDAP::Search> inherits from L<Net::LDAP::Message>, and so supports
all methods defined in L<Net::LDAP::Message>.

=over 4

=item as_struct

Returns a reference to a HASH, where the keys are the DN's of the results
and the values are HASH references. These second level HASH's hold the
attributes such that the keys are the attribute names, in lowercase, and
the values are references to and ARRAY holding the values.

This method will block until the whole search request has finished.

=item count

Returns the number of entries returned by the server.

This method will block until the whole search request has finished.

=item entry ( INDEX )

Return the N'th entry, which will be a L<Net::LDAP::Entry> object. If
INDEX is greater than the total number of entries returned then
undef will be returned.

This method will block until the search request has returned enough
entries.

=item entries

Return an array of L<Net::LDAP::Entry> objects hat were returned from the
server.

This method will block until the whole search request has finished.

=item pop_entry

Pop an entry from the internal list of L<Net::LDAP::Entry> objects for this
search. If there are not more entries then undef is returned.

This call will block, if the list is empty, until the server returns
another entry.

=item references

Return a list of references that the server returned. This will be a list
of L<Net::LDAP::Reference> objects.

=item sorted ( [ ATTR_LIST ] )

Return a list of L<Net::LDAP::Entry> objects,
sorted by the attributes given in ATTR_LIST.  The attributes are
compared in the order specified, each only being compared if all
the prior attributes compare equal. If all the specified attributes
compare equal then the DN is used to determine order.

=item shift_entry

Shift an entry from the internal list of L<Net::LDAP::Entry> objects for this
search. If there are not more entries then undef is returned.

This call will block, if the list is empty, until the server returns
another entry.

=back

=head1 SEE ALSO

L<Net::LDAP>,
L<Net::LDAP::Message>,
L<Net::LDAP::Entry>,
L<Net::LDAP::Reference>

=head1 ACKNOWLEDGEMENTS

This document is based on a document originally written by Russell Fulton
<r.fulton@auckland.ac.nz>.

=head1 AUTHOR

Graham Barr <gbarr@pobox.com>

Please report any bugs, or post any suggestions, to the perl-ldap mailing list
<perl-ldap-dev@lists.sourceforge.net>.

=head1 COPYRIGHT

Copyright (c) 1997-2000 Graham Barr. All rights reserved. This program is
free software; you can redistribute it and/or modify it under the same
terms as Perl itself.

=for html <hr>

I<$Id$>

=cut
