in reply to trap error from parsexlsx

G'day gauss76,

Your problem starts with the first line of code you posted:

$FileToOpen=myfile.xlsx;

It seems to work as is:

$ perl -e '$FileToOpen=myfile.xlsx;' $

But when I ask Perl to warn about problems:

$ perl -we '$FileToOpen=myfile.xlsx;' Unquoted string "myfile" may clash with future reserved word at -e lin +e 1. Unquoted string "xlsx" may clash with future reserved word at -e line +1. Name "main::FileToOpen" used only once: possible typo at -e line 1.

If I use strict:

$ perl -Mstrict -e '$FileToOpen=myfile.xlsx;' Global symbol "$FileToOpen" requires explicit package name (did you fo +rget to declare "my $FileToOpen"?) at -e line 1. Bareword "myfile" not allowed while "strict subs" in use at -e line 1. Bareword "xlsx" not allowed while "strict subs" in use at -e line 1. Execution of -e aborted due to compilation errors.

If I ask Perl how it sees that code:

$ perl -MO=Deparse -e '$FileToOpen=myfile.xlsx;' $FileToOpen = 'myfilexlsx'; -e syntax OK

[Hint: See the concatenation operator in "perlop: Additive Operators".]

Add these lines to the start of your code:

use strict; use warnings;

Then fix all the code such that you no longer get any error or warning messages.

Use the strict and warnings pragmata in all of your code!

— Ken