首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用get_value获取objectName?

如何使用get_value获取objectName?
EN

Stack Overflow用户
提问于 2011-02-03 16:03:06
回答 2查看 2.2K关注 0票数 0

这段代码

代码语言:javascript
复制
my @bl = ();
foreach my $entry ($m->entries) {
  push @bl, "$entry->get_value('objectName', asref => 0)";
}

print Dumper @bl;

输出

代码语言:javascript
复制
$VAR1 = 'Net::LDAP::Entry=HASH(0x5c70920)->get_value(\'objectName\', asref => 0)';
$VAR1 = 'Net::LDAP::Entry=HASH(0x5c706c0)->get_value(\'objectName\', asref => 0)';
$VAR1 = 'Net::LDAP::Entry=HASH(0x5c70660)->get_value(\'objectName\', asref => 0)';

但我不明白为什么会这样。

如果我将objectName改为sAMAccountName,它会给出一些有意义的东西。

如果我转储$m->entries,我会看到

代码语言:javascript
复制
$VAR1 = bless( {
                 'changes' => [],
                 'changetype' => 'modify',
                 'asn' => {
                            'objectName' => 'CN=sandra,OU=list,DC=example,DC=com',
                            'attributes' => []
                          }
               }, 'Net::LDAP::Entry' );

如何使用objectName获得get_value()

更新:第一个注释解决了问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-03 17:44:30

方法调用不被内插到双引号字符串中。在这种情况下,似乎根本不需要引号:

代码语言:javascript
复制
my @bl = ();
foreach my $entry ($m->entries) {
  push @bl, $entry->get_value('objectName', asref => 0);
}

或者,更好的是:

代码语言:javascript
复制
my @bl = map { $_->get_value('objectName', asref => 0) } $m->entries;

请注意易卜拉欣的评论是个坏主意。您不应该在对象的内部进行搜索,而应该使用公共接口。

票数 4
EN

Stack Overflow用户

发布于 2013-06-13 20:36:45

FYI objectName这里是对象的DN。要获得/设置它,您应该使用$entry->dn

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4888473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档