Hi, guys:

i have a perl script that supposed to add users to  ldap . when i run the
script it get:

Can't call method "get_value" on an undefined value at ./add_user.pl



Any help will be appreciated?


The  following message is my  perl script message   and my perl version is
5.8.8 on CentOS 5.4 x86_64.

t...@xxx ~: cat add_user.pl
--------------------------------------------------------------------------------------------------------------
#!/usr/bin/perl

use strict;

use Net::LDAP;


die "Usage is adduser.pl [username] [realname]\n" if length(@ARGV) != 1;

my $username = $ARGV[0];
my $realname = $ARGV[1];

my $ldap = Net::LDAP->new('localhost');
my $mesg = $ldap->bind;
my $mesg = $ldap->search(
                      base => "ou=People,dc=example,dc=com",
                      filter => "(uid=$username)",
                  );
$mesg->code && die $mesg->error;


my $searchResults = $mesg->count;
die "Error! Username already exists!" unless $searchResults == 0;

#print $searchResults;

$mesg = $ldap->search(
                  base => "ou=People,dc=example,dc=com",
                  attrs => ['uidNumber'],
              );

my @entries = $mesg->sorted('uidNumber');
my $entry = pop @entries;

my $newuid = $entry->get_value( 'uidNumber');
$newuid++;

my $result = $ldap->add ("uid=$username,ou=People,dc=example,dc=com",
                  attr => [ 'cn'              => $realname,
                              'uid'             => $username,
                              'uidNumber'       => $newuid,
                              'mail'            => '$usern...@example.com',
                              'homeDirectory'   => '/home/$username',
                              'objectclass'     => ['person',
'inetOrgPerson', 'posixAccount']
                              ]

                          );


$mesg = $ldap->unbind;

Reply via email to