Passing a list as an arg to a subroutine



Hi all. I've been using Perl for many years now, but I am a "use it and learn it as you need it" type. I having some trouble passing a list to the "search" subroutine from Net::LDAP.

I am trying to pass a list of attributes to be returned by search. The basic method call is:

my $searchresults = $ldap->search(OPTIONS)

One of the options is "attrs =>" which the documentation describes as "A list of attributes to be returned for each entry that matches the search filter.".

I am able to do something like this no problem:

my $searchresults = $ldap->search (
base => "$searchbase",
filter => "$searchfilter",
attrs => [ 'uid', 'cn' ];
)

That works just fine.

But what I now want to do is provide the list of attributes to be returned on the command line much like the way ldapsearch works. @ARGV is the list of attributes to be returned. I am not sure how to pass @ARGV to search. I've tried just passing the array, references to the array, but nothing is working for me. The search completes, but, looking at the directory logs, the search is requesting ALL attributes rather than just the ones I want.

my $searchresults = $ldap->search (
base => "$searchbase",
filter => "$searchfilter",
attrs => @ARGV;
)

my $searchresults = $ldap->search (
base => "$searchbase",
filter => "$searchfilter",
attrs => \@ARGV;
)

I am sure I am just using a ref when I shouldn't be, or not using a ref when I should, or simply referencing the array incorrectly but I am not sure which one it is!

I actually have the same problem if I try to define the attributes outside the subroutine call. e.g., if I do this:

my $attrs = [ 'cn', 'uid' ];
my $searchresults = $ldap->search (
base => "$searchbase",
filter => "$searchfilter",
attrs => $attrs;
)

That is not working for me either. Something is broken in my understanding.

Thanks,

Mark
.



Relevant Pages

  • Re: MultiValue Visual Basic
    ... > dim Attrs, Vals, SVals ... >> As for your array idea... ... >>> We wrote functions for convert VBArr to PBArr and PBArr to VBArr. ...
    (comp.databases.pick)
  • Re: having reference problems
    ... > index in some array, ... def self.attr_reference ... @vars += attrs ... attr_accessor *attrs ...
    (comp.lang.ruby)
  • Re: How to add two arrays of same type
    ... Petterson Mikael wrote: ... > All opinions are welcome! ... > attrs){ ... What you're doing is creating an array that contains Attribute Arrays. ...
    (comp.lang.java.help)