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


in reply to Re^3: Parsing multiple excel files in perl
in thread Parsing multiple excel files in perl

I'm not particularly proud of this code but this is as far as i could get using multiple file handles
sub push_button4 { sub push_button1(); $txt->insert('end',"Opened $filename1\n"); sub push_button2(); $txt->insert('end',"Opened $filename2\n"); sub push_button3(); $txt->insert('end',"Opened $filename3\n"); open($filename1,$filename2); my $parser = Spreadsheet::ParseExcel->new(); my $workbook1 = $parser->Parse($filename1) or die $parser->error; my $workbook2 = $parser->Parse($filename2) or die $parser->error; foreach $worksheet($workbook1->worksheet(2),$workbook2->worksheet(2)) { my ( $row_min, $row_max ) = $worksheet->row_range(); my ( $col_min, $col_max ) = $worksheet->col_range(); for my $row ( 0..10 ) { for my $col ( $col_min .. $col_max ) { $txt->insert('end',"$worksheet->{Cells}[$row][1]->{Val +} \n") } } } }
Please suggest improvements

Replies are listed 'Best First'.
Re^5: Parsing multiple excel files in perl
by Athanasius (Archbishop) on Oct 15, 2012 at 12:09 UTC
    Please suggest improvements

    Just a quick observation: In this part of the code:

    sub push_button4 { sub push_button1(); $txt->insert('end',"Opened $filename1\n"); sub push_button2(); $txt->insert('end',"Opened $filename2\n"); sub push_button3(); $txt->insert('end',"Opened $filename3\n"); ...

    I’m guessing you meant to call subroutines push_button1, push_button2, and push_button3, in which case you need to remove the three occurrences of sub. In its current form, the code is simply declaring that each of these subroutines is prototyped to take no arguments (which is probably wrong, and is certainly unnecessary) — but it isn’t calling (i.e., invoking) them.

    Hope that helps,

    Athanasius <°(((><contra mundum