-foreach my $component ( sort @component_names ) {
- my $version;
- if ( eval "require $component" ) {
- $version = $component->VERSION;
- if ( $version eq '' ) {
- $version = 'unknown';
- }
- }
- else {
- $version = 'module is missing';
+foreach my $pm_type(@pm_types) {
+ my $modules = $perl_modules->get_attr($pm_type);
+ foreach (@$modules) {
+ my ($module, $stats) = each %$_;
+ push(
+ @components,
+ {
+ name => $module,
+ version => $stats->{'cur_ver'},
+ missing => ($pm_type eq 'missing_pm' ? 1 : 0),
+ upgrade => ($pm_type eq 'upgrade_pm' ? 1 : 0),
+ current => ($pm_type eq 'current_pm' ? 1 : 0),
+ require => $stats->{'required'},
+ }
+ );