The operator -e (like the other -X operators) takes a filename or file handle, and not a glob or file name pattern with wildcards. As others pointed, you use the builtin glob to do the expansion (either explicitly or via <>). Then you might say: for (glob 'file*') { print "true\n" if -e $_; } Note that if the glob was expanded, it is generally obvious that the file exists (that is, -e $_ above will be true above). But if no filename matching 'file*' was found, the function return 'file*' unchanged. Regards, Adriano. -- We don't need no stinking Java - we want to get some fun. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>