From: Marcus Griep Date: Fri, 15 Aug 2008 19:53:59 +0000 (-0400) Subject: Git.pm: Make File::Spec and File::Temp requirement lazy X-Git-Tag: v1.6.0~7 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=c14c8ceb13b299892f286757e22e6af4f6cffab5;p=git.git Git.pm: Make File::Spec and File::Temp requirement lazy This will ensure that the API at large is accessible to nearly all Perl versions, while only the temp file caching API is tied to the File::Temp and File::Spec modules being available. Signed-off-by: Marcus Griep Signed-off-by: Junio C Hamano --- diff --git a/perl/Git.pm b/perl/Git.pm index 405f68fc3..102e6a4ce 100644 --- a/perl/Git.pm +++ b/perl/Git.pm @@ -100,8 +100,6 @@ use Carp qw(carp croak); # but croak is bad - throw instead use Error qw(:try); use Cwd qw(abs_path); use IPC::Open2 qw(open2); -use File::Temp (); -require File::Spec; use Fcntl qw(SEEK_SET SEEK_CUR); } @@ -1009,6 +1007,8 @@ sub temp_release { sub _temp_cache { my ($name) = @_; + _verify_require(); + my $temp_fd = \$TEMP_FILES{$name}; if (defined $$temp_fd and $$temp_fd->opened) { if ($TEMP_LOCKS{$$temp_fd}) { @@ -1031,6 +1031,11 @@ sub _temp_cache { $$temp_fd; } +sub _verify_require { + eval { require File::Temp; require File::Spec; }; + $@ and throw Error::Simple($@); +} + =item temp_reset ( FILEHANDLE ) Truncates and resets the position of the C.