diff --git a/t/script.t b/t/script.t
index 5010789..753326c 100644
--- a/t/script.t
+++ b/t/script.t
@@ -2,7 +2,7 @@
 use warnings;
 use File::Basename 'dirname';
 use File::Spec::Functions qw/catfile/;
-use File::Temp ':POSIX';
+use File::Temp qw/tempfile/;
 use IO::Uncompress::Unzip qw(unzip $UnzipError);
 
 use Test::More;
@@ -10,6 +10,11 @@
 
 use Test::XML::Loy;
 
+our %ENV;
+# default: remove temp. file created by func. tempfile
+#  to keep temp. files use e.g. 'KORAPXMLTEI_DONTUNLINK=1 prove -lr t/script.t'
+my $_UNLINK = $ENV{KORAPXMLTEI_DONTUNLINK}?0:1;
+
 my $f = dirname(__FILE__);
 my $script = catfile($f, '..', 'script', 'tei2korapxml');
 ok(-f $script, 'Script found');
@@ -29,13 +34,26 @@
 
 # Load example file
 my $file = catfile($f, 'data', 'goe_sample.i5.xml');
-my $outzip = tmpnam();
+
+my ($fh, $outzip) = tempfile("KorAP-XML-TEI_script_XXXXXXXXXX", SUFFIX => ".tmp", TMPDIR => 1, UNLINK => $_UNLINK);
 
 # Generate zip file (unportable!)
 # TODO:
 #   Call with aggressive and conservative tokenizations!
 stderr_like(
   sub { `cat '$file' | perl '$script' > '$outzip'` },
+# approaches for working with $fh (also better use OO interface then)
+#  sub { open STDOUT, '>&', $fh; system("cat '$file' | perl '$script'") },
+#  sub { open(my $pipe, "cat '$file' | perl '$script'|"); while(<$pipe>){$fh->print($_)}; $fh->close },
+#  sub {
+#    defined(my $pid = fork) or die "fork: $!";
+#    if (!$pid) {
+#      open STDOUT, '>&', $fh;
+#      exec "cat '$file' | perl '$script'"
+#    }
+#    waitpid $pid, 0;
+#    $fh->close;
+#  },
   qr!tei2korapxml: .*? text_id=GOE_AGA\.00000!,
   'Processing'
 );
@@ -47,6 +65,7 @@
 
 ok($zip, 'Zip-File is created');
 
+# TODO: check wrong encoding in header-files (compare with input document)!
 # Read GOE/header.xml
 my $header_xml = '';
 $header_xml .= $zip->getline while !$zip->eof;
@@ -112,6 +131,7 @@
 # Read GOE/AGA/00000/struct/structure.xml
 my $struct_xml = '';
 $struct_xml .= $zip->getline while !$zip->eof;
+
 ok($zip->close, 'Closed');
 
 $t = Test::XML::Loy->new($struct_xml);
diff --git a/t/tei.t b/t/tei.t
index f9b5959..b602df6 100644
--- a/t/tei.t
+++ b/t/tei.t
@@ -8,9 +8,14 @@
   unshift @INC, "$FindBin::Bin/../lib";
 };
 
+our %ENV;
+# default: remove temp. file created by func. tempfile
+#  to keep temp. files use e.g. 'KORAPXMLTEI_DONTUNLINK=1 prove -lr t/script.t'
+my $_UNLINK = $ENV{KORAPXMLTEI_DONTUNLINK}?0:1;
+
 use_ok('KorAP::XML::TEI', 'remove_xml_comments');
 
-my ($fh, $filename) = tempfile();
+my ($fh, $filename) = tempfile("KorAP-XML-TEI_tei_XXXXXXXXXX", SUFFIX => ".tmp", TMPDIR => 1, UNLINK => $_UNLINK);
 
 print $fh <<'HTML';
 mehrzeiliger
diff --git a/t/tokenization-external.t b/t/tokenization-external.t
index e867aed..742c656 100644
--- a/t/tokenization-external.t
+++ b/t/tokenization-external.t
@@ -2,9 +2,7 @@
 use warnings;
 use Test::More;
 use File::Basename 'dirname';
-use Data::Dumper;
 use File::Spec::Functions qw/catfile/;
-use File::Temp 'tempfile';
 use Test::XML::Loy;
 
 use FindBin;
diff --git a/t/tokenization.t b/t/tokenization.t
index 5332196..7469efd 100644
--- a/t/tokenization.t
+++ b/t/tokenization.t
@@ -3,7 +3,6 @@
 use Test::More;
 use File::Basename 'dirname';
 use File::Spec::Functions qw/catfile/;
-use File::Temp 'tempfile';
 
 use FindBin;
 BEGIN {
diff --git a/t/zipper.t b/t/zipper.t
index c9eabf0..6147f62 100644
--- a/t/zipper.t
+++ b/t/zipper.t
@@ -1,9 +1,8 @@
 use strict;
 use warnings;
 use Test::More;
-use File::Basename 'dirname';
 use File::Spec::Functions qw/catfile/;
-use File::Temp ':POSIX';
+use File::Temp qw/tempfile/;
 use IO::Uncompress::Unzip;
 
 use FindBin;
@@ -11,12 +10,18 @@
   unshift @INC, "$FindBin::Bin/../lib";
 };
 
+our %ENV;
+# default: remove temp. file created by func. tempfile
+#  to keep temp. files use e.g. 'KORAPXMLTEI_DONTUNLINK=1 prove -lr t/script.t'
+my $_UNLINK = $ENV{KORAPXMLTEI_DONTUNLINK}?0:1;
+
 require_ok('KorAP::XML::TEI::Zipper');
 
 my $data;
-my $outzip = tmpnam();
+my ($fh, $outzip) = tempfile("KorAP-XML-TEI_zipper_XXXXXXXXXX", SUFFIX => ".tmp", TMPDIR => 1, UNLINK => $_UNLINK);
 
 my $zip = KorAP::XML::TEI::Zipper->new($outzip);
+$fh->close;
 
 ok($zip, 'Zipper initialized');
 
