#!/usr/bin/perl use strict; use File::Find; my %seen; find( sub { if (-d) { $seen{$File::Find::name}++; delete $seen{$File::Find::dir} }; }, '/tmp/a' ); print join "\n", (keys %seen, undef);