0.45: Changed from File::Temp tempdir() to newdir(): NOT on RHEL5x

1,711 views
Skip to first unread message

Giulio

unread,
Feb 22, 2012, 3:55:39 PM2/22/12
to spreadsheet...@googlegroups.com
Linux RHEL5x

Perl version : 5.008008
OS name : linux
Module versions: (not all are required)
Excel::Writer::XLSX 0.46
Spreadsheet::WriteExcel 2.24
Archive::Zip 1.16
XML::Writer (not installed)
IO::File 1.13
File::Temp 0.16
===

Cannot run anymore since 0.45 due to:

Can't locate object method "newdir" via package "File::Temp" at
/usr/lib/perl5/vendor_perl/5.8.8/Excel/Writer/XLSX/Workbook.pm line 772.

If there could be a workaround for older perl..., RHEL5 is a very common
system :-)

Thanks

jmcnamara

unread,
Feb 23, 2012, 5:46:33 AM2/23/12
to Spreadsheet::WriteExcel


On Feb 22, 8:55 pm, Giulio <giul...@gmail.com> wrote:

> Cannot run anymore since 0.45 due to:
>
> Can't locate object method "newdir" via package "File::Temp" at
> /usr/lib/perl5/vendor_perl/5.8.8/Excel/Writer/XLSX/Workbook.pm line 772.
>
> If there could be a workaround for older perl..., RHEL5 is a very common
> system :-)

Hi Guilio,

The newdir() feature requires File::Temp >= 0.19.

Can you upgrade File::Temp or is the issue that it can't be upgraded
on RHEL5 because it is core, or something like that?

Regards,

John.
--


Giulio

unread,
Feb 23, 2012, 3:26:05 PM2/23/12
to spreadsheet...@googlegroups.com
On Thu, Feb 23, 2012 at 11:46, jmcnamara <jmcn...@cpan.org> wrote:

> Can you upgrade File::Temp or is the issue that it can't be upgraded
> on RHEL5 because it is core, or something like that?

It's shipped as part of the core perl package
$ rpm -qf `find /usr/lib/perl5/ -name "Temp.pm"`
perl-5.8.8-32.el5_5.2

I found an unofficial rpm for just the File::Temp module and installed it:
$ find /usr/lib/perl5 -name Temp.pm
/usr/lib/perl5/5.8.8/File/Temp.pm
/usr/lib/perl5/vendor_perl/5.8.8/File/Temp.pm
$ rpm -qf `find /usr/lib/perl5 -name Temp.pm`
perl-5.8.8-32.el5_5.2
perl-File-Temp-0.22-2.el5.rfx


Perl version : 5.008008
OS name : linux
Module versions: (not all are required)

Spreadsheet::WriteExcel 2.24
Parse::RecDescent 1.94
File::Temp 0.22
OLE::Storage_Lite 0.19
IO::Stringy 2.110

Now I can use version 0.46, however if I try to insert an image I get
another error:
==
#!/usr/bin/perl
use Excel::Writer::XLSX;
my $workbook = Excel::Writer::XLSX->new("/misc/a/1.xlsx");
my $xls1 = $workbook->add_worksheet('1');
$xls1->insert_image(0,0,'/misc/a/1.png');
==
(in cleanup) Can't locate object method "new" via package "FileHandle" (
perhaps you forgot to load "FileHandle"?) at /usr/lib/perl5/vendor_perl/5.8.8/Ex
cel/Writer/XLSX/Workbook.pm line 1660.

Is this another module I need to upgrade?

Thanks!

Giulio

unread,
Feb 24, 2012, 10:41:54 AM2/24/12
to spreadsheet...@googlegroups.com
On Thu, Feb 23, 2012 at 21:26, Giulio <giu...@gmail.com> wrote:

> ==
> #!/usr/bin/perl
> use Excel::Writer::XLSX;
> my $workbook = Excel::Writer::XLSX->new("/misc/a/1.xlsx");
> my $xls1 = $workbook->add_worksheet('1');
> $xls1->insert_image(0,0,'/misc/a/1.png');
> ==
>        (in cleanup) Can't locate object method "new" via package "FileHandle" (
> perhaps you forgot to load "FileHandle"?) at /usr/lib/perl5/vendor_perl/5.8.8/Ex
> cel/Writer/XLSX/Workbook.pm line 1660.

I solved this by adding
use FileHandle;
at the beginning of Excel/Writer/XLSX/Workbook.pm

jmcnamara

unread,
Feb 26, 2012, 3:51:47 PM2/26/12
to Spreadsheet::WriteExcel


On Feb 24, 3:41 pm, Giulio <giul...@gmail.com> wrote:
> >        (in cleanup) Can't locate object method "new" via package "FileHandle" (
> > perhaps you forgot to load "FileHandle"?) at /usr/lib/perl5/vendor_perl/5.8.8/Ex
> > cel/Writer/XLSX/Workbook.pm line 1660.
>
> I solved this by adding
> use FileHandle;
> at the beginning of Excel/Writer/XLSX/Workbook.pm

Hi Chris,

You should be able to add "use FileHandle" to the start of your
program and not have to modify Workbook.pm.

However, the real issue here is that you don't have the required
versions of the Excel::Writer::XLSX dependencies installed. The
required version of Archive::Zip is 1:30 which has "use FileHandle" at
the start so you wouldn't have encountered this error. Similarly, the
initial issue in this thread was caused by an incorrect version of
File::Temp.

You should get a warning about these issues when you run "perl
Makefile.PL" at the start of installation:

$ perl Makefile.PL
Warning: prerequisite Archive::Zip 1.30 not found. We have 1.16.
Writing Makefile for Excel::Writer::XLSX

The dependency versions are there for a reason. They either indicate a
stable version of a major dependency in the case of Archive::Zip or
are requirements to avoid bugs in earlier versions as is the case with
File::Temp and IO::File.

So by conforming to the required dependencies you will avoid bugs
encountered by other users.

Regards,

John.
--







Giulio

unread,
Feb 27, 2012, 7:45:21 AM2/27/12
to spreadsheet...@googlegroups.com
On Sun, Feb 26, 2012 at 21:51, jmcnamara <jmcn...@cpan.org> wrote:

>    Warning: prerequisite Archive::Zip 1.30 not found. We have 1.16.

I installed Archive..Zip 1.30 and problem is solved.
Thanks

Reply all
Reply to author
Forward
0 new messages