6 our @EXPORT = qw(_getglob _install_modifier _maybe_load_module);
8 sub _getglob { no strict 'refs'; \*{$_[0]} }
10 sub _install_modifier {
11 my ($into, $type, $name, $code) = @_;
12 my $ref = ref(my $to_modify = $into->can($name));
15 Sub::Defer::undefer_sub($to_modify);
17 require Class::Method::Modifiers;
18 Class::Method::Modifiers::install_modifier(@_);
23 sub _maybe_load_module {
24 return $MAYBE_LOADED{$_[0]} if exists $MAYBE_LOADED{$_[0]};
25 (my $proto = $_[0]) =~ s/::/\//g;
26 if (eval { require "${proto}.pm"; 1 }) {
27 $MAYBE_LOADED{$_[0]} = 1;
29 if (exists $INC{"${proto}.pm"}) {
30 warn "$_[0] exists but failed to load with error: $@";
32 $MAYBE_LOADED{$_[0]} = 0;
34 return $MAYBE_LOADED{$_[0]};