On Thu, 2003-06-05 at 21:58, Steve Dockter wrote: > Hi, > > I have a Linux RedHat 7.3 machine that I am trying to install the > Netmeeting Directory Kit on > (http://www.freesoft.org/software/NetMeeting/). I have installed the > Berkeley 4.0.14 database and OpenLDAP 2.0.27. I am using Perl 5.6.1 > with the LDAP module. While running the script nmaddentry I get the > following message: > > ":all" is not exported by the Net::LDAP::Constant module at ./nmaddentry > line 9 > Can't continue after import errors at ./nmaddentry line 9 > BEGIN failed--compilation aborted at ./nmaddentry line 9, <DATA> line > 422. > > The first ten lines of the script are: > > #!/usr/bin/perl > # > # 14 Dec 2000 Brent Baccala [EMAIL PROTECTED] > # > # Perl script to add an entry to a NetMeeting LDAP server > > use Getopt::Std; > use Socket; > use Net::LDAP qw(:all);
Yes, it seems that :all support was dropped when I rewrote ::Constant. I don't recommend using :all as it will import a LOT of symbols and it will only get more as time goes by. Its far better to import what you need. However I have attached a patch that I will put in the next release Graham.
Index: lib/Net/LDAP/Constant.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP/Constant.pm,v retrieving revision 1.8 diff -u -u -r1.8 Constant.pm --- lib/Net/LDAP/Constant.pm 20 May 2003 14:58:49 -0000 1.8 +++ lib/Net/LDAP/Constant.pm 28 May 2003 18:31:51 -0000 @@ -4,7 +4,7 @@ package Net::LDAP::Constant; -$VERSION = "0.01"; +$VERSION = "0.02"; use Carp; @@ -15,7 +15,8 @@ my $callpkg = caller(0); _find(@_); my $oops; - foreach my $sym (@_) { + my $all = grep /:all/, @_; + foreach my $sym ($all ? keys %const : @_) { if (my $sub = $const{$sym}) { *{$callpkg . "::$sym"} = $sub; } @@ -30,11 +31,12 @@ sub _find { if (my @need = grep { ! $const{$_} } @_) { my %need; @[EMAIL PROTECTED] = (); + my $all = exists $need{':all'}; seek(DATA,0,0); local $/=''; # paragraph mode local $_; while(<DATA>) { - next unless /^=item\s+(LDAP_\S+)\s+\((.*)\)/ and exists $need{$1}; + next unless /^=item\s+(LDAP_\S+)\s+\((.*)\)/ and ($all or exists $need{$1}); my ($name, $value) = ($1,$2); delete $need{$name}; $const{$name} = sub () { $value };