From c14c8ceb13b299892f286757e22e6af4f6cffab5 Mon Sep 17 00:00:00 2001 From: Marcus Griep Date: Fri, 15 Aug 2008 15:53:59 -0400 Subject: [PATCH] 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 --- perl/Git.pm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/perl/Git.pm b/perl/Git.pm index 405f68fc39..102e6a4ce3 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.