From 91ca337ee7134fa4c9667df8b8a7c5bd46526bf7 Mon Sep 17 00:00:00 2001 From: Rafael Garcia-Suarez Date: Thu, 8 May 2008 16:56:05 +0000 Subject: The last change to File::Copy broke the perl build. p4raw-id: //depot/perl@33796 --- lib/File/Copy.pm | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/File/Copy.pm b/lib/File/Copy.pm index 01daad55fe..b6a05bae0e 100644 --- a/lib/File/Copy.pm +++ b/lib/File/Copy.pm @@ -12,7 +12,8 @@ use strict; use warnings; use File::Spec; use Config; -use Fcntl qw [O_CREAT O_WRONLY O_TRUNC]; +# During perl build, we need File::Copy but Fcntl might not be built yet +my $Fcntl_loaded = eval q{ use Fcntl qw [O_CREAT O_WRONLY O_TRUNC]; 1 }; our(@ISA, @EXPORT, @EXPORT_OK, $VERSION, $Too_Big, $Syscopy_is_copy); sub copy; sub syscopy; @@ -175,10 +176,16 @@ sub copy { $to_h = $to; } else { $to = _protect($to) if $to =~ /^\s/s; - my $perm = (stat $from_h) [2] & 0xFFF; - sysopen $to_h, $to, O_CREAT | O_TRUNC | O_WRONLY, $perm - or goto fail_open2; - binmode $to_h or die "($!,$^E)"; + if ($Fcntl_loaded) { + my $perm = (stat $from_h) [2] & 0xFFF; + sysopen $to_h, $to, O_CREAT() | O_TRUNC() | O_WRONLY(), $perm + or goto fail_open2; + } + else { + $to_h = \do { local *FH }; + open $to_h, ">", $to or goto fail_open2; + } + binmode $to_h or die "($!,$^E)"; $closeto = 1; } -- cgit v1.2.1