- opendir(D, $dir) || return ();
- @list = grep {/$pattern/ && -f File::Spec->catfile($dir, $_) } readdir(D);
- closedir(D);
-
- foreach $p (@list) {
- $p =~ s/\.pm$//;
- eval qq{ require $p; };
- if ($@) {
- print("Failed to load plugin: $@");
- next;
- }
-
- $g = eval $p.q{->new();};
- if ($@) {
- print("Failed to instanciate: $@");
- delete($INC{$p});
- next;
- }
-
- if ($type eq $g->{'TYPE'}) {
- push(@g, $g);
- } else {
- printf('%s has wrong type (got %s, expected %s)', $p, $g->{'TYPE'}, $type);
- delete($INC{$p});
+ if ($info) {
+ foreach (keys(%{$m})) {
+ printf("%s: %s\n", $_, defined($m->{$_})?$m->{$_}:'(undef)');