My experience is that all the -X file operators work on Windows and FreeBSD. You could try
@files = grep { -s and -f} @files;
I would make sure that it's actually a file; directories on *ix-ish systems have non-zero size. It would probably also make sense to check to see if you have the required permissions for copying the file into another location,
e.g. on *ix, you need write access in the target directory.
Copying files can be done with File::Copy or system,
...kudos to blazar for his observation about _ and the -X operators.
emc
Information about American English usage here and here.
Any Northeastern US area jobs? I'm currently unemployed.