use strict; use Net::LDAP; use Data::Dumper; my %all_users; ############################################ # Bind to LDAP                             # ############################################ my $ldap = Net::LDAP->new( 'server01.hallo.de' ) or die "$@"; my $mesg = $ldap->bind( 'dc=hallo, dc=de', password => 'user1' ); $mesg = $ldap->search( # perform a search base => "DC=hallo, DC=de", filter => "(&(objectclass=user)(samAccountname=user1))" ); $mesg->code && die $mesg->error; ################################################## # retrieve the properties from the results # ################################################## my $max = $mesg->count; for ( my $i = 0; $i < $max; $i++ ) { my $entry = $mesg->entry ( $i ); my $userid = $entry->get_value('samAccountname'); $all_users{$userid}{'first_name'} = $entry->get_value( 'givenName' ); $all_users{$userid}{'last_name'} = $entry->get_value( 'sn' ); $all_users{$userid}{'phone'} = $entry->get_value( 'telephoneNumber' ); } ################################ # unbind from LDAP # ################################ $mesg = $ldap->unbind; print Dumper(\%all_users);