use strict; use warnings; my $dir = "C:\\parser_pgm\\test"; opendir(DIR, $dir) or die "Can't open $dir: $!"; while(my $file = readdir DIR) { my $pathname = "$dir\\$file"; if (-f $pathname) { # I added the -f test after running this and finding # out that readdir returns "." and ".." # (At least on the version of ActivePerl I am using) print STDERR "running parser_pgm.exe on $pathname\n"; # for debugging system("parser_pgm.exe \"$pathname\""); # I added quotes in case there are spaces in the # file name (or in directory name in case you change it. if ($? != 0) { print STDERR "parser_pgm returned error $?\n"; } } } closedir(DIR);