I am trying to write a script that searches ldap for a group and then prints out the members of that group. I stripped it down to the bare essentials to figure out why it's not working. When I run it, I get the attributes for the group name, but I don't get any members back, and I get an error message:
Can't locate object method "get_value" via package "Net::LDAP::Reference" at dl_ dn.pl line 24, <DATA> line 225. Thanks for the help! Here it is: use Net::LDAP; open (DISTRIBUTION_LISTS, ">distribution_lists.csv"); $ldap = Net::LDAP->new( 'XXXX', port =>389 ) or die "$@"; $ldap->bind( "XXXX", password => "XXXX" ) or die "$@"; $mesg = $ldap->search( # perform a search base => "XXXXX", filter => "ciscoEcsbuObjectType=2", attrs => [ 'displayname','mail', 'member' ], callback => \&callback ); sub callback { my ( $mesg, $entry ) = @_; if (!defined($entry)){ return; } my $displayname = $entry->get_value('displayname'); my $mail = $entry->get_value('mail'); @member = $entry->get_value(member); print "$displayname, $mail\n"; foreach (@member) { my $filter_item = $member; print "$filter_item\n"; $mesg = $ldap->search( base => " ", filter => "distinguishedname=$filter_item", attrs => [ 'givenname','sn'] ); my $givenname=get_value->$entry('givenname'); my $sn=get_value->$entry('sn'); print "$givenname, $sn\n"; } } close DISTRIBUTION_LISTS; $mesg = $ldap->unbind;