dir ( @ARGV ); sub dir { local $_; for my $d ( @_ ){ local $_; print "\nDirectory listing of $d:\n\n"; my @file = glob "$d/*"; for my $f ( @file ) { print $f . "\n"; } for my $f ( grep (( -d $_ ), @file )) { dir( $f ); } } }