P:\test>perl -c -mstrict -w junk.pl Scalar value @_[0] better written as $_[0] at junk.pl line 6. syntax error at junk.pl line 5, near "sub recurseDir2 " Can't use global @_ in "my" at junk.pl line 6, near "glob @_" syntax error at junk.pl line 17, near "}" junk.pl had compilation errors. #### #! perl -w use strict; my $dir = "C:/"; sub recurseDir2 { my @temp = (glob $_[0]); foreach (@temp) { if (-d $_) { print "Directory: $_" , "\n" ; recurseDir2("$_/*"); }else{ if (-f $_) { print "File: $_ \n"; } } } } recurseDir2($dir)