> On Oct 30, 2015, at 9:43 AM, Craig A. Berry <craigbe...@mac.com> wrote: > > It still fails to clean up the temp directory and I think it’s that same > [Content_Types].xml file that is causing the problem. Don’t have a solution > for that yet.
Now I do. When the File::Temp destructor tries to clean up the temp directory, it calls File::Path::rmtree, which navigates to each directory and deletes each file in it before deleting the directory. That fails because [Content_Types].xml as a relative specification is ambiguous, so the delete of that file fails and then the attempt to delete the directory containing it fails. Deleting [Content_Types].xml as part of an absolute path is fine, though, as it’s not ambiguous when there are directory components present. We can help things out by deleting the files we’ve created before the File::Temp destructor ever attempts to go after them. So along with DECC$FILENAME_UNIX_REPORT, the following gets us a working Excel::Writer::XLSX on VMS: $ gdiff -pu lib/Excel/Writer/XLSX/Workbook.pm;-0 lib/Excel/Writer/XLSX/Workbook.pm --- lib/Excel/Writer/XLSX/Workbook.pm;-0 2015-10-29 14:09:16 -0500 +++ lib/Excel/Writer/XLSX/Workbook.pm 2015-10-30 13:07:34 -0500 @@ -964,7 +964,7 @@ sub _store_workbook { # with File::Find and pass each one to addFile(). my @xlsx_files; - my $wanted = sub { push @xlsx_files, $File::Find::name if -f }; + my $wanted = sub { push @xlsx_files, $File::Find::name unless -d }; File::Find::find( { @@ -1010,6 +1010,7 @@ sub _store_workbook { print { $self->{_filehandle} } $buffer; } } + for my $f ( @xlsx_files ) { 1 while unlink $f; } } [end] ________________________________________ Craig A. Berry mailto:craigbe...@mac.com "... getting out of a sonnet is much more difficult than getting in." Brad Leithauser