in reply to Read Excel file via Perl

Hello AE1602,

Welcome to the Monastery. Can you show us your code that the script is failing?

From the error BEGIN failed--compilation aborted at ./CreInventoryFromExcel.pl line 35. is complaining for line 35. On your sample of code the Begging is on line 3.

Update: See sample of code bellow this assumption is not correct.

From a quick view are you sure that push(@INC, $ENV{'PWD'}."/lib"); runs the same on WindowsOS and LinuxOS? Do you mean pwd on LinuxOS maybe?

Sample:

$ PWD PWD: command not found $ pwd /home/user
#!/usr/bin/perl use strict; use warnings; print "\$ENV{PWD} is:\t" . $ENV{PWD} . "\n"; __END__ $ perl test.pl $ENV{PWD} is: /home/user

Also you do need to use #!/usr/bin/perl -w the -w on your shebang while you use use warnings.

I assume that your code is running on WindowsOS but not on LinuxOS. Taken in consideration this assumption be aware that 6 Ways the Linux File System is Different From the Windows File System LinuxOS is case sensitive and WindowsOS is not. Double check the file names and please prepare a small sample of executable script that demonstrates the problem. We can not replicate your problem based on the given information.

I would recommend prepare a small dir that you import and from there load one module that simply reads the excel file. If this works then the rest should work.

Looking forward to your update.

BR / Thanos

Seeking for Perl wisdom...on the process of learning...not there...yet!

Replies are listed 'Best First'.
Re^2: Read Excel file via Perl
by alexander_lunev (Pilgrim) on Sep 17, 2018 at 18:00 UTC

    PWD in $ENV{'PWD'} is not a pwd command, but an environment variable in %ENV hash, which contains current dir on Windows and on *nix systems. So the line  push(@INC, $ENV{'PWD'}."/lib"); will correctly add current dir to @INC array in both worlds.

      Hello alexander_lunev,

      You are right I did not know that this works also on LinuxOS.

      Sample:

      #!/usr/bin/perl use strict; use warnings; print "\$ENV{PWD} is:\t" . $ENV{PWD} . "\n";

      Thanks for correcting me. BR

      Seeking for Perl wisdom...on the process of learning...not there...yet!