Reputation: 57
I am trying to read 2 excel sheet in single perl program.
like this -->
#!/usr/bin/perl -w
use strict;
use IO::File;
use IO::Seekable;
use Spreadsheet::ParseExcel;
my $parser = Spreadsheet::ParseExcel->new();
my $workbook = $parser->Parse('FILE1.xls');
my $worksheet1 = $workbook->worksheet('Worksheet_name1');
my $workbookB = $parser->Parse('FILE2.xls');
my $worksheetB = $workbookB->worksheet('Worksheet_name2');
But, I am facing this Error - Can't call method "worksheet" on an undefined value at ./PERL_PROGRAM.pl
Can someone give me some pointers.. Thanks for your help
Upvotes: 0
Views: 1652
Reputation: 62109
The parse
method returns undef
if it fails, and you aren't checking for that. (Which is why you get Can't call method "worksheet" on an undefined value
.) Also, it's parse
, not Parse
(Perl is case sensitive). Try this:
#!/usr/bin/perl
use strict;
use warnings;
use Spreadsheet::ParseExcel;
my $parser = Spreadsheet::ParseExcel->new();
my $workbook = $parser->parse('FILE1.xls') or die $parser->error;
my $worksheet1 = $workbook->worksheet('Worksheet_name1')
or die "Worksheet_name1 doesn't exist";
my $workbookB = $parser->parse('FILE2.xls') or die $parser->error;
my $worksheetB = $workbookB->worksheet('Worksheet_name2')
or die "Worksheet_name2 doesn't exist";
Upvotes: 2