use strict; use warnings; use Win32::OLE; use Win32::OLE::Const qw( Microsoft.PowerPoint ); use Win32::OLE::Enum; $Win32::OLE::Warn = 3; my $app = get_powerpoint(); $app->{Visible} = 1; my $presentation = $app->Presentations->Open('strMgrErr.pptx'); sub get_powerpoint { my $app; eval { $app = Win32::OLE->GetActiveObject('PowerPoint.Application') }; die "$@\n" if $@; unless ( defined $app ) { $app = Win32::OLE->new( 'PowerPoint.Application', sub { $_[0]->Quit } ) or die sprintf( "Cannot start PowerPoint: '%s'\n", Win32::OLE->LastError ); } return $app; }