# configuration: Put the fields you want here. my @fields_i_want_to_see= qw(givenname department); my %show_field = map { $_ => 1 } @fields_i_want_to_see; use Net::LDAP; $ldap = Net::LDAP->new('ldap.acme.com') or die "$@"; $mesg = $ldap->search( base => "o=acme.com", scope => 'sub', filter => "sn=smith", ); # # At this point the user can get the returned data # as an array or as a stack. # In this example we will use an array # How many entries were returned from the search my $max = $mesg->count; for( my $index = 0 ; $index < $max ; $index++) { my $entry = $mesg->entry($index); my $dn = $entry->dn; # Obtain DN of this entry @attrs = $entry->attributes; # Obtain attributes for this entry. foreach my $var (@attrs) { #get a list of values for a given attribute $attr = $entry->get_value( $var, asref => 1 ); if ( defined($attr) ) { foreach my $value ( @$attr ) { # I'd like to be able to check when the we're past the last entry we're looking for, for each "smith, jones, and peters" print "$var: $value\n" if $show_field{$var};# Print each value for the attribute. } } } }