use strict; use File::Find; my %seen; sub wanted { if (-d $File::Find::name) { if ($seen{$File::Find::name}) { $File::Find::prune = 1; return; } $seen{$File::Find::name} = 1; } print "$File::Find::name\n" if /\.pm$/; } find \&wanted, @INC;