Ich habe heute diverse Module (in dem Fall die Testfiles *.t!) getestet und bemerkt, dass bei denen File::Temp->tempdir kein Verzeichnis im temporären Verzeichnis erzeugt, wenn das Modul im Taintmode aufgerufen wird.
test.pl:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use strict;
use warnings;
use File::Temp ();
my $tempdir = File::Temp->newdir;
print "Tempdir is $tempdir";
=pod
generates something like:
Tempdir is \2n_ZnUbENO
but should be something like:
Tempdir is C:\Users\MYNAM~1\AppData\Local\Temp\58nDhHDTcd
=cut
Aufzurufen als:
perl -T -IC:\strawberry\perl\lib -IC:\strawberry\perl\site\lib -IC:\strawberry\perl\vendor\lib test.pl
Gibt leider nur /58nDhHDTcd o. ä. als (ohne kompletten Pfad auf temporäres Verzeichnis) aus! Was nicht sinnvoll ist.
Ist aber nur ein Windows-Problem!
Auf Linux wird immer ein neues Verzeichnis unterhalb /tmp/ erzeugt.
Ich verwendete:
Windows 7 (x64)
Strawberry Perl 5.14.4 (32bit!) MSWin32-x86-multi-thread
File::Spec (3.47) ist aktuell aus SMUELLER/PathTools-3.47.tar.gz
File::Temp (0.2304) aus File-Temp-0.2304.tar.gz
Habe aber auch 5.20 getstet mit selbem Ergebnis.
Kann das jemand bitte mit Strawberry-Perl unter Windows testen?
Dann kann ich den Maintainer von File::Temp wegen des taintmodes ansprechen, was das ist und ob das beabsichtigt ist, denn es stört auch andere Modultests wie bei z. B. App:Ack.
Last edited: 2014-07-01 15:59:23 +0200 (CEST)