use Win32::OLE;
$Win32::OLE::Warn = 3;

my $strObjectDN = "cn=jnowak,cn=users,dc=rallencorp,dc=com";

my $ADS_PROPERTY_CLEAR  = 1;
my $ADS_PROPERTY_UPDATE = 2;
my $ADS_PROPERTY_APPEND = 3;
my $ADS_PROPERTY_DELETE = 4;

my $objUser = Win32::OLE->GetObject("LDAP://" . $strObjectDN);

# Dodawanie dwch wartoci
$objUser->PutEx($ADS_PROPERTY_APPEND, "otherTelephone", ["555-1212", "555-1213"] );
$objUser->SetInfo;
# otherTelephoneNumber = 555-1212, 555-1213

# Usunicie jednej wartoci
$objUser->PutEx($ADS_PROPERTY_DELETE, "otherTelephone", ["555-1213"]);
$objUser->SetInfo;
# otherTelephoneNumber = 555-1212

# Zmiana wartoci
$objUser->PutEx($ADS_PROPERTY_UPDATE, "otherTelephone", ["555-1214"]);
$objUser->SetInfo;
# otherTelephoneNumber = 555-1214

# Usunicie wszystkich wartoci
$objUser->PutEx($ADS_PROPERTY_CLEAR, "otherTelephone",  []);
$objUser->SetInfo;
# otherTelephoneNumber = <puste>
