… | |
… | |
99 | do { |
99 | do { |
100 | $pkg =~ s/::[^:]+$// |
100 | $pkg =~ s/::[^:]+$// |
101 | or return sub { die "unable to resolve '$func'" }; |
101 | or return sub { die "unable to resolve '$func'" }; |
102 | |
102 | |
103 | local $@; |
103 | local $@; |
104 | eval "require $pkg"; |
104 | unless (eval "require $pkg; 1") { |
105 | |
|
|
106 | my $error = $@; |
105 | my $error = $@; |
107 | $error =~ /^Can't locate .*.pm in \@INC \(/ |
106 | $error =~ /^Can't locate .*.pm in \@INC \(/ |
108 | or return sub { die $error }; |
107 | or return sub { die $error }; |
|
|
108 | } |
109 | } until defined &$func; |
109 | } until defined &$func; |
110 | } |
110 | } |
111 | |
111 | |
112 | \&$func |
112 | \&$func |
113 | } |
113 | } |