http://qs321.pair.com?node_id=1056294


in reply to Scope of workbook in write excel

You don't say in what way your program is not working for you. On my system (Windows running perl 5.15) there were a few problems.

I added use strict;, which I do habitually. This revealed one fault and I made two other changes to avoid warnings. Then the program ran but produced an empty file, so I added an explicit close() and it created worksheets as expected. I ended up with the following:

use strict; use warnings; use Spreadsheet::WriteExcel; #use Spreadsheet::ParseExcel; #use Spreadsheet::ParseExcel::SaveParser; my $workbook; my @s; my $Month="Sept"; sub create_excel { $workbook = Spreadsheet::WriteExcel->new('FAISTATS_'."$Month".'.xl +s'); for ( my $i=1;$i<=8;$i++) { $s[$i] = $workbook->add_worksheet( "cpzea0".$i."a0001" ) ; } $s[9] = $workbook->add_worksheet( "WEEKLY" ) ; $s[10] = $workbook->add_worksheet( "MONTHLY" ) ; } create_excel(); $workbook->close();

It may help you to review the caveats about close() in Spreadsheet::WriteExcel.