my @dirs = map { s/\Q$dir\E(\w+?)\.pm$/$1/, $1 } keys %$packlist; for (@dirs) { print "|$_|\n" if ( $_ and length($_) > 2 ); } #### |1| |A_Module| |1| |An_Other_Module|