私はCNの使用正規表現を出力し、このコードLDAPを使用してCNを抽出していますか?
#!/usr/bin/perl
use warnings;
use strict;
use Net::LDAP;
use Data::Dumper;
my $dn="CN=...";
my $password="xxx";
my $ldap = Net::LDAP->new('example.com') or die "[email protected]";
my $mesg = $ldap->bind($dn, password=>$password);
if ($mesg->code) { die "uuuu $mesg"; }
$mesg = $ldap->search(base => "dc=test,dc=example,dc=com", filter => "(name=LIST)",);
my $ref = $mesg->entry->get_value("member", asref => 1);
print Dumper $ref;
foreach my $string (@{$ref}) {
$string =~ /CN=(.+?),.*/;
print $1 . "\n";
}
持っている:私がある場合は構造
$VAR1 = [
'CN=aaaa,OU=test,DC=test,DC=example,DC=com',
'CN=bbbb,OU=test,DC=test,DC=example,DC=com',
'CN=cccc,OU=test,DC=test,DC=example,DC=com',
は、だから私は疑問に思って見ることができるDumper
を使用
aaaa
bbbb
cccc
...
を正規表現を使用するのではなく、これらのCNを抽出するための「LDAP」方法が増えていますか?
アップデート:Javsに基づいて
は、これが解決策である答えます。
my $ref = $mesg->entry->get_value("member", asref => 1);
foreach my $string (@{$ref}) {
print ldap_explode_dn($string)->[0]{CN} . "\n";
}
私がそれを行うなら 'print Dumper $ cn;'、 '$ VAR1 = 'LIST';'を得る。 –
@Sandra Schlichtingああ、申し訳ありません、今あなたが望むものを手に入れました。私の編集をチェックしてください。 – javs
あなたのLDAPサーバが返すものについて一貫性があるなら、 '$ dn - > [0] {CN}'(ここで$ dnはldap_explode_dnの結果です)と同じように簡単です。ハッシュ – javs