From 576c62dbe64c582eb94ad60fd4782ab4b3057bf0 Mon Sep 17 00:00:00 2001 From: amacleay Date: Tue, 7 Jan 2014 11:52:07 -0500 Subject: Do not die if last require failed --- lib/Class/Refresh.pm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/Class/Refresh.pm b/lib/Class/Refresh.pm index eb1dda8..320490d 100644 --- a/lib/Class/Refresh.pm +++ b/lib/Class/Refresh.pm @@ -187,11 +187,20 @@ sub load_module { my ($mod) = @_; $mod = $class->_file_to_mod($mod); + my $file = $class->_mod_to_file($mod); + my $last_require_failed = exists $INC{$file} && !defined $INC{$file}; + try { Class::Load::load_class($mod); } catch { - die $_; + if ($last_require_failed) { + # This file failed to load previously. + # Presumably that error has already been caught, so that's fine + } + else { + die $_; + } } finally { $class->_update_cache_for($mod); -- cgit v1.2.3-54-g00ecf