#! /usr/bin/perl use strict; use warnings; use File::Basename; use Data::Dumper; my $base_dir = 'C:Input/INT'; my @dir = $base_dir; my @dir_names; while (@dir) { my $dir = pop(@dir); opendir(my $dh, $dir); my $file; while($file = readdir($dh)) { next if $file eq '.'; next if $file eq '..'; $file = "$dir/$file"; if (-d $file) { push(@dir, $file); print basename($file); #@dir_names=basename($file); print "\n"; } else { } } }