On Feb 9, 2010, at 10:56 AM, Heiko Jansen wrote:
> Hi there,
>
> using Net::LDAP I had a problem when I wanted to hand of a stringified
> version
> of a single result record (object of type Net::LDAP::Entry): it seems like
> it's only possible to dump a record directly to a file handle
> (Net::LDAP::Entry->dump)?!
>
> So in case anyone else finds this useful (and in case I didn't miss
> something)
> I've appended a small patch to Net/LDAP/Entry.pm (and Net/LDAP/Entry.pod)
> which provides a dumpstr() method to return a stringified record.
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
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
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;
}
Graham.