use strict;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Outlook';
$|++;
$Win32::OLE::Warn = 3; # Throw Errors, I'll catch them
my $OL = Win32::OLE->GetActiveObject('Outlook.Application')
|| Win32::OLE->new('Outlook.Application', 'Quit');
my $NameSpace = $OL->GetNameSpace("MAPI");
####
my $Contacts = $NameSpace->Folders("Personal Folders")->Folders("Contacts");
my @names = qw(Chuck Charles Charlie Chuckles);
foreach my $name (@names){
my $NewContact = $Contacts->Items->Add();
$NewContact->{FirstName}=$name;
$NewContact->{LastName}="Charbeneau";
$NewContact->Save();
print "Added $name\n";
}
####
$Contacts = $NameSpace->Folders("Personal Folders")->Folders("Contacts")->{Items};
my $Cacharbes = $Contacts->Find("[LastName]=Charbeneau");
my $cnt = 0;
while (1) {
if ($Cacharbes->{FirstName} eq "Chuckles"){
$Cacharbes->Delete();
}
$Cacharbes = $Contacts->FindNext() || last;
}