diff options
author | Jesse Luehrs <doy@tozt.net> | 2014-01-22 09:13:06 -0800 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2014-01-22 09:13:06 -0800 |
commit | b80006332c52b13b3c5eaae92d362fb20992a65c (patch) | |
tree | 5e4c6273f6e5fc0bd67e4101308c1d1c72de469c /lib/Class/Refresh.pm | |
parent | f0153f9e0aa32910bef579d7956e59d933108261 (diff) | |
parent | a117735e35a304fbf9a1c1ad1139d2845e2bf39e (diff) | |
download | class-refresh-b80006332c52b13b3c5eaae92d362fb20992a65c.tar.gz class-refresh-b80006332c52b13b3c5eaae92d362fb20992a65c.zip |
Merge pull request #2 from amacleay/master
Do not die if last require failed
Diffstat (limited to 'lib/Class/Refresh.pm')
-rw-r--r-- | lib/Class/Refresh.pm | 11 |
1 files changed, 10 insertions, 1 deletions
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); |