use strict;
use warnings;
use Net::LDAP;
# binmode STDOUT, ':utf8'; # <- If this is active, output is corrupted
my $ldap_host= '...myhost...';
my $ldap_port= ...myport...;
my $ldap_user= '...myuser...';
my $ldap_pass= '...mypass...';
my $ldap = Net::LDAP->new( $ldap_host,
port => $ldap_port,
raw => qr/(?i:^jpegPhoto|;binary)/,
) or die "$@";
my $mesg = $ldap->bind( $ldap_user,
password => $ldap_pass,
);
if ($mesg->is_error) {
die $mesg->error_text;
}
$mesg= $ldap->search(
base => '...mybase...',
filter => 'uid=...myuser...',
attrs => [ qw/ cn / ]
);
if ($mesg->is_error) {
die $mesg->error_text;
}
my $result= $mesg->as_struct;
while (my($id, $data)= each %$result) {
print $data->{'cn'}->[0], "\n";
}
$ldap->unbind;
####
$ ./ldap-test.pl
Jörg
$ ./ldap-test.pl | od -xc
0000000 f64a 6772 000a
J 366 r g \n
0000005
####
$ ./ldap-test.pl
Jörg
$ ./ldap-test.pl | od -xc
0000000 c34a 72b6 0a67
J 303 266 r g \n
0000006