in reply to Handling errors on perl

The error is upwards from the code you showed. $table did not receive a value.

Maybe you have something like this in your code:

$table = Spreadsheet::ParseExcel->parse( $filename );

... you should check there that you actually get a value back:

my $parser = Spreadsheet::ParseExcel->new(); my $table = $parser->parse('Book1.xls'); if ( !defined $table ) { die $parser->error(), ".\n"; }

But this is just a wild guess as you haven't shown how you intend to initialize $table.