Re: Dumping Net::LDAP::Entry to a string

Graham Barr <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.ldap
Message-ID <[email protected]>
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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.