title: How do I modify a Boolean LDAP Active Directory attribute using Net::LDAP?
body: <p>I can successfully bind to AD LDAP, and modify and create objects.</p>
  
  <p>However, if I want to update or set an attribute of type 'Boolean', then I get this error:</p>
  
  <blockquote>
    <p>00000057: LdapErr: DSID-0C090C3E, comment: Error in attribute conversion operation, data 0, v1db1</p>
  </blockquote>
  
  <p>Here is a piece of the Perl code responsible:</p>
  
  <pre><code>$rv = $ldap-&gt;add($dn, attr=&gt; [
      cn =&gt; [$u],
      objectClass =&gt; [ 'top','person', 'organizationalPerson', 'contact' ],
      displayName =&gt; "$u Mailing List",
      mail =&gt; $email,
      name =&gt; $u,
      mailNickname =&gt; $local,
      proxyAddresses =&gt; [
          "SMTP:$email",
          "smtp:$local\@$SERVERDOM",
      ],
      givenName =&gt; $u,
      targetAddress =&gt; "SMTP:$email",
      internetEncoding =&gt; 1310720,
      msExchAddressBookFlags =&gt; 1,
      msExchModerationFlags =&gt; 6,
      msExchProvisioningFlags =&gt; 0,
          msExchHideFromAddressList =&gt; 'TRUE',
          msExchBypassAudit =&gt; 'FALSE',
          msExchMailboxAuditEnable =&gt; 'FALSE',
  </code></pre>
  
  <p>]);</p>
  
  <p>The problem is the three last attributes; if they are commented out, then it works.  I have tried using 0 and 1 instead of 'TRUE' and 'FALSE' but I get the same issue.  It seems that the <code>Net::LDAP</code> code calls <code>Convert::ASN1</code> with a type of <code>string</code> or <code>int</code> which is incorrect; it should be using 'boolean', but I cannot see how to make it do this.</p>