- 论坛徽章:
- 1
|
尝试使用use Net::LDAPxs
替换use Net::LDAP
呵呵,实在抱歉,用如此误导性的标题吸引大家。我想说的并不是通过设置改进Net::LDAP的性能,而是在情况允许的情况下尝试Net::LDAPxs
先看两段代码,第一段是使用Net::LDAP,第二段是使用Net::LDAPxs
use Net::LDAP;
my $base = "ou=language,dc=shallot,dc=com";
my $scope = 1;
my $filter = "(|(cn=buy)(cn=details))";
my @attrs = ('objectClass', 'cn', 'ja');
my $ldap = Net::LDAP->new("127.0.0.1", port => 389);
$ldap->bind("cn=Manager,dc=shallot,dc=com", password => "secret");
my $msg = $ldap->search(base => $base, filter => $filter, scope => "one", attrs=> \@attrs);
my @entries = $msg->entries();
foreach my $entry (@entries) {
foreach my $attr ($entry->attributes()) {
foreach my $val ($entry->get_value($attr)) {
print "$attr<>$val\n";
}
}
}
|
use Net::LDAPxs;
my $base = "ou=language,dc=shallot,dc=com";
my $scope = 'one';
my $filter = "(|(cn=buy)(cn=details))";
my @attrs = ('objectClass', 'cn', 'ja');
my $ldap = Net::LDAPxs->new("127.0.0.1", Port => "389");
$ldap->bind("cn=Manager,dc=shallot,dc=com", password => "secret");
my $msg = $ldap->search(base => $base, filter => $filter, scope => $scope, attrs => \@attrs);
my @entries = $msg->entries();
foreach my $entry (@entries) {
foreach my $attr ($entry->attributes()) {
foreach my $val ($entry->get_value($attr)) {
print "$attr<>$val\n";
}
}
}
|
两段代码是完全一样的,除了使用的模块。这两个模块的用户接口部分几乎是完全相同的。程序只是执行了一个简单的bind和一个简单的搜索,共搜索到2个结果,每个entry有3个attributes。是一个非常简单的搜索了。 |
-
perl.png
(107.06 KB, 下载次数: 56)
Net::LDAP的结果
-
xs.png
(96.2 KB, 下载次数: 56)
Net::LDAP的结果
|