can someone remove me from your emails??????
----- Original Message -----
From: "Heiko Jansen" <jan...@hbz-nrw.de>
To: perl-ldap@perl.org
Sent: Wednesday, February 10, 2010 11:32:43 AM GMT -05:00 US/Canada Eastern
Subject: Re: Dumping Net::LDAP::Entry to a string
Am Mittwoch 10 Februar 2010 15:17:25 schrieb Graham Barr:
> I am in two minds as whether to accept this as a change. As the docs state
>
> This method is intended for debugging purposes and does not treat
> binary attributes specially
>
> See Net::LDAP::LDIF on how to generate LDIF output
>
> so this really should not be used for passing around entries
I didn't intend to pass around the stringified entry - but you're right:
people would quite probably try to use it that way.
As for not treating binary attributes specially: If dump() could live without,
I concluded that dumpstr() could do so, either....
> Also, anything that can dump to a filehandle can dump to a string.
>
> open(my $fh,">",\my $buffer);
>
> then pass $fh as the file handle
I consider that a not so well known solution. At least I had to look it up
yesterday - well, given my programming skills that's probably not a sensible
criterion.... ;-)
Regarding Christophers reference to it lacking backward compatibility: One
might use IO::String instead. But that would add another module dependency.
> Having said that maybe Net::LDAP::Entry could use an ->ldif method
>
> something like (untested)
>
> sub ldif {
> my $self = shift;
> require Net::LDAP::LDIF;
> open(my $fh, ">", \my $buffer);
> my $changes = $self->changes ? 1 : 0;
> my $ldif = Net::LDAP::LDIF->new($fh,"w", changes => $changes);
> $ldif->write_entry($self);
> return $buffer;
> }
Well, that works. Output does not look as nicely formatted and readable as the
original dump() output, but that's certainly an acceptable trade-off for being
more complete and "correct". Which makes me think that it could be used inside
dump(), too.
Heiko