sub new { my $class = shift; my $self = Excel::Writer::XLSX::Package::XMLwriter->new(); ... $self->{_tempdir} = undef; ... } sub _store_workbook { ... my $tempdir = File::Temp->newdir( DIR => $self->{_tempdir} ); ... $packager->_set_package_dir( $tempdir ); $packager->_create_package(); ... } sub set_tempdir { my $self = shift; my $dir = shift; croak "$dir is not a valid directory" if defined $dir and not -d $dir; $self->{_tempdir} = $dir; }