use Win32::OLE ('in'); use Win32::OLE::Const 'Microsoft Outlook'; use strict; $Win32::OLE::Warn = 3; # die on errors... my $olLib = 'Outlook.Application'; my $OlApp = Win32::OLE->GetActiveObject($olLib) || Win32::OLE->new($olLib, sub {$_[0]->Quit;}) || die "$olLib: $!"; # get already active object # Get Message Folder my $MsgFolder = $OlApp->GetNameSpace('MAPI')->GetDefaultFolder(olFolderInbox); foreach my $Folder (in $MsgFolder->Folders) { ... }