Hi,

On Monday, 18. September 2006 04:26, Andrej Ricnik-Bay wrote:
> Can't call method "search" on an undefined value at ldap2csv.pl line
> 118, <DATA> line 225.

It's in line 118, where the Perl is told to perform the search() method on 
something that is undefined nistead of an object of a class that supports a 
search() method.

> I can't for the life of me figure out which value it's complaining about as
> uninitialised ... I've verified with a print that the parameter passed is
> valid and has the list of attributes in it;  everything else is constant.

> from script2:
> &ldapcsv::print_header();
>
> read( STDIN, $data, $ENV{"CONTENT_LENGTH"});
> @pairs = split( "&", $data);
> #print "Anything here at all? $data <BR>\n";
> foreach $pair (@pairs) {
>   $name=""; $value="";
> #  print "<BR>SPACER<BR> $#pairs <BR>\n";
>   $pair =~ tr/+/ /;
>   $pair =~ s/%(..)/pack("C", hex($1))/eg;
>   $pair =~ m/(\w+)(?:=)?(.+)/    ;
>   if( defined $2 && $2 ne "=" ) {
>     $name=$1;
>     $value=$2;
>     chomp $name;
>     chomp $value;
>     if ( $name =~ /Attributes/ && defined $query ){
>       $query .= ", '".$value."'"
>     } else {
>       $query = "'".$value."'"
>     }
>   }
> }
> print "<BR>Final: $query <BR>\n";
>
> &ldapcsv::search_it( $query );
>
>
> script1:
> package ldapcsv;
> use strict;
> use Net::LDAP;
> use Net::LDAP::Entry;
> use Net::LDAP::Schema;
> .
> .
> .
> sub search_it {
>   my ( $param ) = @_ ;
>   print "<BR>In search_it: $param  <BR>\n";
>   $mesg = $ldap->search(

I guess here is the problem.
Did you define $ldap in this package ?

>     base      => 'ou=people,ou=users,o=ORG',
>     filter    => '(cn=*)',
>     scope     => 'sub',
>     attrs     => [ "$param" ],
>     timelimit => 90
>   );
>   if ( $mesg->code == 0 ) {
>     my @entry = $mesg->entries;
>     if (@entry) {
>       foreach my $entr (@entry) {
>         my $attr;
>         foreach $attr ( sort $entr->attributes ) {
>           print "  $attr : ", $entr->get_value($attr), "\n";
>         }
>       }
>     }
>   }
> }
>

Hope it helps
Peter
-- 
Peter Marschall
[EMAIL PROTECTED]

Reply via email to