展望+;Perl+;Win32::Ole:如何选择按日期排序的日历项?

展望+;Perl+;Win32::Ole:如何选择按日期排序的日历项?,perl,winapi,outlook,Perl,Winapi,Outlook,当前代码打开Outlook日历数据库,如下所示: my $outlook = Win32::OLE->GetActiveObject('Outlook.Application') || Win32::OLE->new('Outlook.Application', 'Quit'); my $namespace = $outlook->GetNamespace("MAPI"); ## only fetch entries from Jan 1, 2007 onwards my

当前代码打开Outlook日历数据库,如下所示:

my $outlook = Win32::OLE->GetActiveObject('Outlook.Application') || Win32::OLE->new('Outlook.Application', 'Quit');

my $namespace = $outlook->GetNamespace("MAPI");

## only fetch entries from Jan 1, 2007 onwards
my $restrictDates = "[Start] >= '01/01/2007'";  

由于您不显示获取对象日期的代码,因此如果不了解您试图访问的Outlook对象,则无法回答此问题

如果您有一个对象数组,您可以按日期对其排序,并在某个对象之前对其进行筛选

my $sub = sub {
       my $ad = $a->date_string_accessor;
       my $bd = $b->date_string_accessor;
       $ad =~ s:(\d+)/(\d+)/(\d+):$3 . sprintf('%0d', $1) . sprintf('%0d', $2):e;
       $bd =~ s:(\d+)/(\d+)/(\d+):$3 . sprintf('%0d', $1) . sprintf('%0d', $2):e;
       return $ad cmp $bd;
};

my @sorted = sort $sub @unsorted;

print join("\n", @sorted);
但在我看来,您应该使用应用程序本身来实现这一点——大概Outlook具有某种查询/排序功能