Use of uninitialized value in concatenation (.) or string at ./add_nt_attribs.pl line 120, <STDIN> line 1. Use of uninitialized value in length at /usr/local/perl-5.8/lib/site_perl/5.8.8/Convert/ASN1/_encode.pm line 143, <STDIN> line 1. Use of uninitialized value in concatenation (.) or string at /usr/local/perl-5.8/lib/site_perl/5.8.8/Convert/ASN1/_encode.pm line 144, <STDIN> line 1. ntUserDomainId: value #0 invalid per syntax at /usr/local/perl-5.8/lib/site_perl/5.8.8/Net/LDAP/Entry.pm line 268
$entry already exists in LDAP, and I'm just trying to add this new objectClass and related attributes to the entry. Am I doing this the wrong way?
Should I be using a function other than entry->add(), like $ldap->modify()?
John Perkins wrote: > On 02/17/2011 03:04 PM, Prentice Bisbal wrote: >> Okay guys, I need another pair of eyes to try find an error in my code. >> Can any of you see anything wrong with this bit of code?
>> Use of uninitialized value in concatenation (.) or string at >> ./add_nt_attribs.pl line 120,<STDIN> line 1. >> Use of uninitialized value in length at >> /usr/local/perl-5.8/lib/site_perl/5.8.8/Convert/ASN1/_encode.pm line >> 143,<STDIN> line 1. >> Use of uninitialized value in concatenation (.) or string at >> /usr/local/perl-5.8/lib/site_perl/5.8.8/Convert/ASN1/_encode.pm line >> 144,<STDIN> line 1. >> ntUserDomainId: value #0 invalid per syntax at >> /usr/local/perl-5.8/lib/site_perl/5.8.8/Net/LDAP/Entry.pm line 268
>> $entry already exists in LDAP, and I'm just trying to add this new >> objectClass and related attributes to the entry. Am I doing this the >> wrong way?
>> Should I be using a function other than entry->add(), like >> $ldap->modify()?
> You might want to try splitting that into 3 separate $entry->add() calls > to see if you can narrow down which value it is having issues with.
> John
John,
I effectively did that by commenting out lines 1 and 2 individually and simultaneously with no dice. When I comment them both out, I get the error that objectClass ntUser requires the attribute ntUserDomainId, so I think at least those two must be added together.
Prentice Bisbal wrote: > Okay guys, I need another pair of eyes to try find an error in my code. > Can any of you see anything wrong with this bit of code?
> Use of uninitialized value in concatenation (.) or string at > ./add_nt_attribs.pl line 120, <STDIN> line 1. > Use of uninitialized value in length at > /usr/local/perl-5.8/lib/site_perl/5.8.8/Convert/ASN1/_encode.pm line > 143, <STDIN> line 1. > Use of uninitialized value in concatenation (.) or string at > /usr/local/perl-5.8/lib/site_perl/5.8.8/Convert/ASN1/_encode.pm line > 144, <STDIN> line 1. > ntUserDomainId: value #0 invalid per syntax at > /usr/local/perl-5.8/lib/site_perl/5.8.8/Net/LDAP/Entry.pm line 268
> $entry already exists in LDAP, and I'm just trying to add this new > objectClass and related attributes to the entry. Am I doing this the > wrong way?
> Should I be using a function other than entry->add(), like $ldap->modify()?
-- Prentice Bisbal Linux Software Support Specialist/System Administrator School of Natural Sciences Institute for Advanced Study Princeton, NJ
> Use of uninitialized value in concatenation (.) or string at > ./add_nt_attribs.pl line 120, <STDIN> line 1. > Use of uninitialized value in length at > /usr/local/perl-5.8/lib/site_perl/5.8.8/Convert/ASN1/_encode.pm line > 143, <STDIN> line 1. > Use of uninitialized value in concatenation (.) or string at > /usr/local/perl-5.8/lib/site_perl/5.8.8/Convert/ASN1/_encode.pm line > 144, <STDIN> line 1. > ntUserDomainId: value #0 invalid per syntax at > /usr/local/perl-5.8/lib/site_perl/5.8.8/Net/LDAP/Entry.pm line 268
value #0 is referring to the entry's first attribute type value, please check this value.
Thanks everyone for all the assistance. I finally found the source of my error. I was assigning ntUserDomainId inside an if block earlier in the code like this:
if (something) { my $ntUserDomainId = something_else;
Obviously, this scoped $ntUserDomainId incorrectly, so it was undefined in my entry->add function. A subtle mistake that I kept overlooking. I used the debugger, but was checking it's value as soon as it was defined, and not where the error was actually occuring. D'oh!
Prentice Bisbal wrote: > Okay guys, I need another pair of eyes to try find an error in my code. > Can any of you see anything wrong with this bit of code?
> Use of uninitialized value in concatenation (.) or string at > ./add_nt_attribs.pl line 120, <STDIN> line 1. > Use of uninitialized value in length at > /usr/local/perl-5.8/lib/site_perl/5.8.8/Convert/ASN1/_encode.pm line > 143, <STDIN> line 1. > Use of uninitialized value in concatenation (.) or string at > /usr/local/perl-5.8/lib/site_perl/5.8.8/Convert/ASN1/_encode.pm line > 144, <STDIN> line 1. > ntUserDomainId: value #0 invalid per syntax at > /usr/local/perl-5.8/lib/site_perl/5.8.8/Net/LDAP/Entry.pm line 268
> $entry already exists in LDAP, and I'm just trying to add this new > objectClass and related attributes to the entry. Am I doing this the > wrong way?
> Should I be using a function other than entry->add(), like $ldap->modify()?
> I cut off the last line of the errors, which says this, which might be > an additional clue:
> ntUserDomainId: value #0 invalid per syntax
What does your $ntUserDomainId value look like?
If you call $ldap->debug(15) before $entry->add you will get some extra output showing what perl's sent to your server, and that should provide a big clue.
Chris Ridd wrote: > On 17 Feb 2011, at 21:13, Prentice Bisbal wrote:
>> I cut off the last line of the errors, which says this, which might be >> an additional clue:
>> ntUserDomainId: value #0 invalid per syntax
> What does your $ntUserDomainId value look like?
> If you call $ldap->debug(15) before $entry->add you will get some extra output showing what perl's sent to your server, and that should provide a big clue.
> Chris
Thanks for the tip. I figured out the source of my problem (you probably are reading your e-mails in order so haven't gotten to that one yet), but that's a trick that will be very helpful in the future.