my $file; my $module; my @installed; my %installed; my @standard; my %standard; my @non_standard; my @INC_html = @INC; map {s/perl/perl\/html/i;} @INC_html; # Find all '.html' suffixed files in paths contained in the array @INC_html find( sub { push @standard, $File::Find::name if -f _ && /\.html$/ },@INC_html); foreach $file (@standard) { $file =~ /(.*lib\/)(.*)(\.html)/; $file = $2; $file =~ s/\//::/g; } # Find all '.pm' suffixed files in paths contained in the array @INC find( sub { push @installed, $File::Find::name if -f _ && /\.pm$/ },@INC); foreach $file (@installed) { $file =~ /(.*lib\/)(.*)(\.pm)/; $file = $2; $file =~ s/\//::/g; } # Build a look-up table (Hash) for the standard modules @standard{@standard} = (1) x @standard; # Look-up standard and non-standard modules foreach $module (@installed) { unless(exists $standard{$module}) { push @non_standard,$module; } }