#! perl -slw use strict; use warnings; use constant batchdir => "c:\temp10"; use Net::LDAP; use Data::Dumper; open PERSON, "buildAD.ldif" or die $!; my $HOST = "a"; my $ADMIN = "b"; my $PWD = "c"; my $BASEDN = "d"; my $ldap = Net::LDAP->new( "$HOST" ) or die "$@"; my $dn = $ldap->bind( "$ADMIN", password => "$PWD", version=>3 ); my @attr = "1.1"; while () { $dn = $ldap->search( #return only the person DN base => "$BASEDN", filter => "(&(objectClass=user)(employeeID=$_))", scope => "sub", attrs => [@attr], ); $dn->code && warn $dn->error; foreach $dn ($dn->entries) { push @attr, $dn->dump; } my $ev = Data::Dumper->Dump([$dn], [qw(dn)]); print OUT $ev; #never writes anything to OUT print OUT changetype: modify; #never writes anything to OUT print OUT replace: manager; #never writes anything to OUT while () { $mgr = $ldap->search( #return only the manager DN base => "$BASEDN", filter => "(&(objectClass=user)(employeeID=$_))", scope => "sub", attrs => [@attr], ); $mgr->code && warn $mgr->error; foreach $mgr ($mgr->entries) { push @attr, $mgr->dump; } my $evev = Data::Dumper->Dump([$mgr], [qw(mgr)]); print OUT manager: $evev; } } $dn = $ldap->unbind; #session ends close OUT; close MGR; close PERSON;