请教一个简单的变量组合{已解决}

请教一个简单的变量组合{已解决}

因为没有学过perl脚本。但是实际工作需要写一个简单的脚本情大家帮忙哈

我有一个perl的脚本是用来修改LDAP数据库的
但是其中有一个键值需要改写但是原有脚本没有。
我本来测试这样填写
add => [mail => "$user\@abc.com"],
看起来一切正常。但是在select的时候无法找到mail的属性值请问这个地方应该如何填写我需要是user的mail

其实就是吧@符号脱意!
谢谢!

不知道你那个变量怎么定义的,如果
%info = (add => [mail => "$user\@abc.com"]);
那么用$info{add}->[1]能取到"$user\@abc.com"
你改成
%info = (add => {mail => "$user\@abc.com"});
的话,可以用$info{add}->[mail]
这个脚本不适我写的是samba里面的一个脚本。但是没有mail的属性值。我需要添加一个。但是如果我用管理工具添加进去的时候这个属性值好用。如果用脚本按照我那个方式写入就不行脚本如下其中2个属性是我添加的!


my $dn= $user_entry->dn();

my $tmp;
my @mods;
my @dels;
if (defined($tmp = $Options{'a'})) {
  # Let's connect to the directory first
  my $winmagic = 2147483647;
  my $valpwdcanchange = 0;
  my $valpwdmustchange = $winmagic;
  my $valpwdlastset = 0;
  my $valacctflags = "[UX]";
  my $user_entry=read_user_entry($user);
  my $uidNumber = $user_entry->get_value('uidNumber');
  my $userRid = 2 * $uidNumber + 1000;
  my $email = '@abc.com';
  my $mail = "$user$email";
  # apply changes
  my $modify = $ldap_master->modify ( "$dn",
                                      changes => [
                                                  add => [objectClass => 'sambaSAMAccount'],
                                                  add => [objectClass => 'qmailUser'],
                                                  add => [sambaPwdLastSet => "$valpwdlastset"],
                                                  add => [sambaLogonTime => '0'],
                                                  add => [sambaLogoffTime => '2147483647'],
                                                  add => [sambaKickoffTime => '2147483647'],
                                                  add => [sambaPwdCanChange => "$valpwdcanchange"],
                                                  add => [sambaPwdMustChange => "$valpwdmustchange"],
                                                  add => [displayName => "$displayname"],
                                                  add => [sambaSID=> "$config{SID}-$userRid"],
                                                  add => [mail => "$mail"],
                                                  add => [sambaAcctFlags => "$valacctflags"],
                                                  add => [qmailGID => "$uidNumber"],
                                                  add => [qmailUID => "$uidNumber"],
                                                 ]
                                    );
  $modify->code && warn "failed to modify entry: ", $modify->error ;
Net::LDAP ?文档里应该有吧
Sorry
这个bug是LDAP的schema 和qmail schema 兼容性bug 我写了2个循环顺次执行就可以了。