Based on our experience with File::Temp in the test suite, I think we
can avoid calling 'chmod' entirely (regardless of OS) and can simply use
File::Temp's functional interface (which avoids that warning I mentioned
in an earlier post).
François: If the patch attached works for you on Windows, you can apply
it to trunk. It works for me on Linux.
kid51
Index: config/auto/perldoc.pm
===================================================================
--- config/auto/perldoc.pm (revision 28197)
+++ config/auto/perldoc.pm (working copy)
@@ -20,7 +20,7 @@
use strict;
use warnings;
-use File::Temp;
+use File::Temp qw( tempfile );
use base qw(Parrot::Configure::Step);
use Parrot::Configure::Utils ':auto';
@@ -37,9 +37,7 @@
my ( $self, $conf ) = @_;
my $cmd = $conf->data->get_p5('scriptdirexp') . q{/perldoc};
- my $tmpfile = File::Temp->new( UNLINK => 1, SUFFIX => '.tmp' );
- my $mode = 0666;
- chmod $mode, $tmpfile;
+ my ( $tmpfile, $fname ) = tempfile( UNLINK => 1 );
my $content = capture_output("$cmd -ud $tmpfile perldoc") || undef;
return 1 unless defined( $self->_initial_content_check($conf, $content) );