This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Filename portability for hash-rt85026.t
authorCraig A. Berry <craigberry@mac.com>
Fri, 20 May 2011 12:36:53 +0000 (07:36 -0500)
committerCraig A. Berry <craigberry@mac.com>
Fri, 20 May 2011 12:36:53 +0000 (07:36 -0500)
File::Temp::tempdir returns a directory in native syntax.  You
can't just paste a file onto that in Unix syntax and expect it
to work.

t/op/hash-rt85026.t

index 61c0fb4..b7d0cc6 100644 (file)
@@ -10,20 +10,22 @@ BEGIN {
 use strict;
 use Devel::Peek;
 use File::Temp qw(tempdir);
+use File::Spec;
 
 my %hash = map +($_ => 1), ("a".."z");
 
 my $tmp_dir = tempdir(CLEANUP => 1);
+my $tmp_file = File::Spec->catfile($tmp_dir, 'dump');
 
 sub riter {
     local *OLDERR;
     open(OLDERR, ">&STDERR") || die "Can't dup STDERR: $!";
-    open(STDERR, ">", "$tmp_dir/dump") ||
-        die "Could not open '$tmp_dir/dump' for write: $^E";
+    open(STDERR, ">", $tmp_file) ||
+        die "Could not open '$tmp_file' for write: $^E";
     Dump(\%hash);
     open(STDERR, ">&OLDERR") || die "Can't dup OLDERR: $!";
-    open(my $fh, "<", "$tmp_dir/dump") ||
-        die "Could not open '$tmp_dir/dump' for read: $^E";
+    open(my $fh, "<", $tmp_file) ||
+        die "Could not open '$tmp_file' for read: $^E";
     local $/;
     my $dump = <$fh>;
     my ($riter) = $dump =~ /^\s*RITER\s*=\s*(\d+)/m or