I believe what you're running into is the fact that when reading from the user via
<> is that you're getting new lines, as well. So when you give it "c:\temp" and hit enter, $dir is filled with "c:\\temp\n".
I suggest the following modification to your code:
$dir = <>; # get directory from STDIN
chomp $dir ; # get rid of trailing new line!
$dir =~ s/\//\\/g; # clean up the path a bit
opendir(DIR,"$dir") or die "Can't open '$dir' $!" ; # open directory $
+dir
@files = readdir(DIR); # read directory contents into @files
closedir(DIR);
The addition of
die is to make sure you get a message about
why it's not working, pinpointing what's wrong. You could use
warn instead and put that in a loop, waiting for a valid dir or some such. Just an idea =)
-Ducky