http://qs1969.pair.com?node_id=11150036


in reply to Parsing error

$t[6] means the 7th item of the array @t. But you declared my @t=(',',$_); which only has 2 items ( $t[0] and $t[1] ). So when you try $t[6] eq "CA" then perl says it's uninitialized because that item does not exist in that list.

The code you posted makes no sense. Try to start from scratch and organize your thoughts, using pen and paper if necessary, before and while writing the code. You're making some progress. Keep trying, and organize your code:

my $input = "SRC185.xlsx"; my $output = "Output2022.xlsx"; my $workbook = Excel::Writer::XLSX->new( $output ); my $worksheet = $workbook->add_worksheet('List'); my $rowCount = 0; open(FH, "<", $input ) or die "Can't open $input: $!";

<P> tags added by GrandFather to improve readability

code tags on array elements added by Discipulus

Replies are listed 'Best First'.
Re^2: Parsing error
by Anonymous Monk on Jan 30, 2023 at 19:05 UTC
    Also, don't use a BAREWORD filehandle, add $ to make it a variable and declare it with "my":
    open my $FH, "<", $input or die "Can't open $input: $!";
Re^2: Parsing error
by Anonymous Monk on Jan 30, 2023 at 21:37 UTC
    <P> tags added by GrandFather to improve readability

    No you broke my post and the monastery ate the brackets!
    It's supposed to look like this, please stop editing lol:

    $t[6] means the 7th item of the array @t. But you declared my @t=(',',$_); which only has 2 items ($t[0] and $t[1]). So when you try $t[6] eq "CA" then perl says it's uninitialized because that item does not exist in that list. The code you posted makes no sense. Try to start from scratch and organize your thoughts, using pen and paper if necessary, before and while writing the code. You're making some progress. Keep trying, and organize your code: my $input = 'SRC185.xlsx'; my $output = 'Output2022.xlsx'; my $workbook = Excel::Writer::XLSX->new( $output ); my $worksheet = $workbook->add_worksheet('List'); my $rowCount = 0; open my $FH, '<', $input or die "Can't open $input: $!";