in reply to Reading directories

I tested your code and it works fine here, regardless wether I readdir() from "dirs" or "dirs2". Are you sure this is the problematic code? And, are you sure you are really in "C:/"?

But, there is really a problem with that code:

use warnings; use warnings; use warnings;

If you had, you would have notived this:

Argument "dirs2" isn't numeric in numeric eq (==) at - line 3. Argument "dirs" isn't numeric in numeric eq (==) at - line 3.
In clear English: You cannot do a numerical comparision on directory handles. In fact, you cannot numerical compare anything else but numbers...

Another problem is your semantics if you use "dirs2". You read the content from some directory you opened ("C:/") but you test if that content exists in the current directory ("-d $_"). Always append the correct directory, e.g. "-d 'C:\\' . $_"

BTW: You should really use UPPERcase directory handle names---the lowercase ones give nasty warnings.