use strict; use warnings; use Data::Dumper; my $dir = 'C:\Users\test\Dropbox\Perl'; print_rec($dir); sub print_rec { opendir DIR, shift; while( readdir(DIR) ) { if(!/\.|\.\./ && -d $_) { print "$_ is a directory\n"; return print_rec($_); } elsif (!-d) { print "$_ \n"; } } }