http://www.perlmonks.org?node_id=856988


in reply to Re: Issue with Spreadsheet::WriteExcel
in thread Issue with Spreadsheet::WriteExcel

I think the message means $worksheet is undefined, not one of the parameters.

And I think the real problem is because of all the extra my's in there.

my $workbook; # No need for the = () my $worksheet; # No need for the = () # Create output file with user filename: if ($outfile ne "d") { $workbook = Spreadsheet::WriteExcel->new($outfile); # No my, or $wo +rkbook will go out of scope at the end of the if block $worksheet = $workbook->add_worksheet(); # same here print "What should we label the column containing the data?\n"; my $colname = <STDIN>; chomp($colname); $worksheet->write(0,"A",$colname); } # Other code here I assume # Write 00 temperature data into file: $read = 4+(($day-1)*58); $temp = $xls->1{("B", $read)}; $row = $day + 1; $worksheet->write($row,$col,$temp); # No my $day = $day + 1;

Now $worksheet won't go out of scope after the if block, and the later code can still use it.