#!perl use File::Find; sub scan { my @found; for my $dir (@_) { my $topdir = $dir; find( sub { if ( -f $File::Find::name && $File::Find::name =~ /\.pm$/ ) { my $fn = $File::Find::name; $fn =~ s/\Q$topdir//g; $fn =~ s/\//::/g; $fn =~ s/^:://g; $fn =~ s/\.pm//g; push @found, $fn; } }, $dir ); } return @found; } print join "\n", scan(@INC);