Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

executable file 64 lines (46 sloc) 1.466 kb
#! /usr/bin/perl
# $Id:,v 1.1 2001/10/23 15:07:41 gbarr Exp $
=head1 NAME - A (simplified) ldapmodify clone written in Perl.
=head1 DESCRIPTION is a simplified ldapmodify clone written in Perl.
=head1 SYNOPSIS [B<-a>] [B<-c>] [B<-e errors>] [B<-f file>] [B<-D binddn>]
[B<-w passwd>] [B<-h ldaphost>] [B<-p port>]
The options have the same meaning as those for the standard ldapmodify command.
use Net::LDAP;
use Net::LDAP::LDIF;
use Getopt::Std;
use IO::File;
use vars qw(%opt);
use strict;
getopts('acD:e:f:h:p:P:w:', \%opt);
$opt{h} ||= 'localhost';
my $conn = Net::LDAP->new($opt{h}) or die "$opt{h}: $!\n";
my $result = $conn->bind($opt{D}, password => $opt{w});
$result->code && die("$opt{h}: bind: ", $result->error, "\n");
my $ldif = Net::LDAP::LDIF->new($opt{f}, "r");
$ldif->{changetype} = 'add' if $opt{a};
my $ldiferr;
while (my $change = $ldif->read_entry()) {
print "dn: ", $change->dn, "\n";
my $result = $change->update($conn);
if ($result->code) {
print STDERR "ldapmodify: ", $result->error, "\n";
if ($opt{e}) {
if (!$ldiferr) {
$ldiferr = Net::LDAP::LDIF->new($opt{e}, 'a', change => 1)
or die "$opt{e}: $!\n";
print { $ldiferr->{fh} } "# Error: ", $result->error;
print { $ldiferr->{fh} } "\n";
last unless $opt{c};
print "\n";
=head1 AUTHOR
Kartik Subbarao <>
Jump to Line
Something went wrong with that request. Please try again.