Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

use strict; use warnings; use Spreadsheet::ParseExcel; use Spreadsheet::WriteExcel; print "enter the PMT part number \n"; my $partnumber= <STDIN>; # Create a parser to read the input Excel file. my $parser = Spreadsheet::ParseExcel->new(); my $in_workbook = $parser->parse( 'D:\OFFICE_WORKS\perl\bom.xls' ); if ( !defined $in_workbook ) { die $parser->error(), ".\n"; } my $out_workbook = Spreadsheet::WriteExcel->new( 'D:\OFFICE_WORKS\perl +\output.xls' ); # Create a writer to store the new Excel data. # Read the data from the first worksheet (or whichever). my $in_worksheet = $in_workbook->worksheet( 0); my $out_worksheet = $out_workbook->add_worksheet(); my $out_row = 0; my ( $row_min, $row_max ) = $in_worksheet->row_range(); my ( $col_min, $col_max ) = $in_worksheet->col_range(); for my $in_row ( $row_min .. $row_max ) { my $cell = $in_worksheet->get_cell( $in_row,0 ); # Check the c +ell in the first column. print $cell "value in the cell = $cell \n"; print $partnumber "=entered part number = $partnumber \n"; if ( $cell && $cell->value() eq '$partnumber' ) { for my $col ( $col_min .. $col_max ) { my $cell = $in_worksheet->get_cell( $in_row, $col ); next unless $cell; $out_worksheet->write( $out_row, $col, $cell->unformatted( +) ); # Store the data in the output file. } $out_row++; } } error: Not a GLOB at ----path line 33

Replies are listed 'Best First'.
Re: NOT A GLOB reference
by choroba (Cardinal) on Oct 06, 2015 at 12:42 UTC
    You used the special syntax of print:
    print $where "what"; # ^ # | # No comma here!

    In such a case, $where must be a file handle to which you want to print. If you just want to print the value, put a comma after the variable, or include it in the double quotes. I fear you'll need to print $cell->value, not the object directly.

    لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
Re: NOT A GLOB reference
by GotToBTru (Prior) on Oct 06, 2015 at 13:25 UTC

    Nobody explained the rules of Golf to you, did they?

    Dum Spiro Spero