I have the following code, which WORKS for a word file, but crashes for a similar word file (both docx)
use strict;
use Excel::Writer::XLSX;
use Spreadsheet::ParseXLSX;
use Carp qw( croak );
use Cwd qw( abs_path );
use Path::Class;
use Win32::OLE qw(in);
use Win32::OLE::Const 'Microsoft Word';
...
my $path=....;
my $word =Win32::OLE->new('Word.Application','Quit');
my $word_file = file(abs_path($path));
my $doc = $word->{Documents}->Open("$word_file");
print "after doc\n";
my $tables = $word->ActiveDocument->{Tables};
for my $table (in $tables) {
my $numrows=$table->Rows->Count;
$main::numcols=$table->Columns->Count;
# Iterate through rows and count columns
foreach my $rownum (1 .. $table->Rows->Count) {
my $row = $table->Rows->Item($rownum);# code crashes here
...
}
}
The code crashes as indicated with the message
Win32::OLE(0.1712) error 0x8002000e: "Invalid number of parameters"
in METHOD/PROPERTYGET "Item" at C:/Strawberry/perl/lib/Devel/ptkdb.pm line 2658.
When I try to debug with ptkdb it crashes as soon as I ask for a listing of $doc or $table
How do I go about debugging this??