package Perl::Metrics::Lite::Analysis::File::Plugin::Packages; use strict; use warnings; sub init { } sub measure { my ( $class, $context, $file ) = @_; my @unique_packages = (); my $found_packages = $file->find('PPI::Statement::Package'); return scalar @unique_packages if ( !Perl::Metrics::Lite::Analysis::Util::is_ref( $found_packages, 'ARRAY' ) ); my %seen_packages = (); foreach my $package ( @{$found_packages} ) { $seen_packages{ $package->namespace() }++; } @unique_packages = sort keys %seen_packages; return scalar @unique_packages; } 1;