http://qs321.pair.com?node_id=1211172


in reply to Unicode path with Spreadsheet::XLSX

At http://cpansearch.perl.org/src/MIKEB/Spreadsheet-XLSX-0.15/lib/Spreadsheet/XLSX.pm i find

sub __load_zip { my ($filename) = @_; my $zip = Archive::Zip->new(); if (ref $filename) { $zip->readFromFileHandle($filename) == Archive::Zip::AZ_OK or +die("Cannot open data as Zip archive"); } else { $zip->read($filename) == Archive::Zip::AZ_OK or die("Cannot op +en $filename as Zip archive"); } return $zip; }
which seems to suggest that you can pass a open filehandle instead of a path to new. You may want to open the file yourself and pass the filehandle instead of the path. something like
open (my $MYfh,'<',$MYpath) or die "cant open $MYPath @!"; my $excel = Spreadsheet::XLSX -> new ($MYfh);
Or including info from http://search.cpan.org/~rboisvert/Win32-LongPath-1.03/lib/Win32/LongPath.pm
my $MYfh; openL (\$MYfh, '<:encoding(UTF-8)', $MYPath) or die ("unable to open $file ($^E)"); my $excel = Spreadsheet::XLSX -> new ($MYfh);
Just an UNTESTED thought