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;