use strictures 1;
use base qw(Exporter);
-our @EXPORT = qw(_getglob _install_modifier);
+our @EXPORT = qw(_getglob _install_modifier _maybe_load_module);
sub _getglob { no strict 'refs'; \*{$_[0]} }
Class::Method::Modifiers::install_modifier(@_);
}
+our %MAYBE_LOADED;
+
+sub _maybe_load_module {
+ return $MAYBE_LOADED{$_[0]} if exists $MAYBE_LOADED{$_[0]};
+ (my $proto = $_[0]) =~ s/::/\//g;
+ if (eval { require "${proto}.pm"; 1 }) {
+ $MAYBE_LOADED{$_[0]} = 1;
+ } else {
+ if (exists $INC{"${proto}.pm"}) {
+ warn "$_[0] exists but failed to load with error: $@";
+ }
+ $MAYBE_LOADED{$_[0]} = 0;
+ }
+ return $MAYBE_LOADED{$_[0]};
+}
+
1;