all_below('Foo::'); sub all_below { my $ns = shift; no strict 'refs'; ( $ns, map { (/::$/ && !/main::/) ? all_below($ns.$_) : () } keys %$ns ); }