RE: Net::LDAP::Entry - RFC
"Burns, Victor M" via perl-ldap <[email protected]> Tue, 02 Jan 2018 13:36:09 +0000
| Newsgroups | gmane.comp.lang.perl.modules.ldap |
|---|---|
| Message-ID | <B0C23573B268484A8C732E3C1C2A105E01EE7FF5@smtp_mail.bankofamerica.com> |
Thanks for getting back to me. I suspect I confused the version number. As you know perl-ldap is a large set of classes. I am using the latest perl-ldap-0.65 and the class in Question Net::LDAP::Entry is 0.27 and is confirmed both on my system and on CPAN at this link; http://search.cpan.org/~marschap/perl-ldap-0.65/lib/Net/LDAP/Entry.pod which shows it is version 0.27 and is part of perl-ldap-0.65
As I mentioned it might be nice if the ldif method supported additional options. I found it useful to have a wrap => 0 option to disable wrapping. For now I get around the issue by cheating. In a class I've written I fudge a new method, ldif_nowrap, into the Net::LDAP::Entry namespace, "God bless PERL!" that hardcodes the ( wrap => 0 ) into it and I call it in the place of the regular ldif method. I do it this way and avoid the Perl redefined subroutine warning all together. I'm a huge fan of strict and warnings! I don't write anything without them. :)
package Net::LDAP::Entry;
use strict;
use warnings;
sub ldif_nowrap
{
my $self = shift;
my %opt = @_;
require Net::LDAP::LDIF;
open(my $fh, '>', \my $buffer);
my $change = exists $opt{change} ? $opt{change} : $self->changes ? 1 : 0;
my $ldif = Net::LDAP::LDIF->new($fh, 'w', wrap => 0, change => $change);
$ldif->write_entry($self);
return $buffer;
}
But it would be just as easy for the original method to be updated to look something like this. I've not tested this but it visually looks okay.
sub ldif
{
my $self = shift;
my %opt = @_;
require Net::LDAP::LDIF;
open(my $fh, '>', \my $buffer);
my $change = exists $opt{change} ? $opt{change} : $self->changes ? 1 : 0;
my @wrap = exists $opt{wrap} ? ( wrap => $opt{wrap} ) : ();
my $ldif = Net::LDAP::LDIF->new($fh, 'w', @wrap, change => $change);
$ldif->write_entry($self);
return $buffer;
}
Best Regards,
Victor Burns
-----Original Message-----
From: Peter Marschall [mailto:[email protected]]
Sent: Thursday, December 28, 2017 6:26 AM
To: [email protected]; Burns, Victor M <[email protected]>
Subject: Re: Net::LDAP::Entry - RFC
Hi Victor,
Am Donnerstag, 27. Juli 2017, 13:42:13 CET schrieb Burns, Victor M via perl-
ldap:
> I've been working with the Net::LDAP::Entry class.
> I think it would be keen/natural if the ->ldif method supported additional
> Net::LDAP::LDIF options. For example:
> print $entry->ldif( wrap => 0 );
> I inspected the method and it seems that only the change option is
> supported. I have version 0.27
Sorry for anwering this late.
As Chris ridd wrote 0.27 is veeeeery old - from 2003 ,if I remember correctly.
Since then perl-ldap gained lots of features.
Please do yourself a favour and update to a recent version.
While not directly fulfilling your request, the newer versions have an
extended Net::LDAP::Entry->update() method, that allows using an LDIF file as
a target to write to.
Best regards
PEter
--
Peter Marschall
[email protected]
----------------------------------------------------------------------
This message, and any attachments, is for the intended recipient(s) only, may contain information that is privileged, confidential and/or proprietary and subject to important terms and conditions available at http://www.bankofamerica.com/emaildisclaimer. If you are not the intended recipient, please delete this message.