No such thing as a small change | |
PerlMonks |
Re: glob() and dot filesby Marshall (Canon) |
on Apr 13, 2020 at 05:05 UTC ( [id://11115417]=note: print w/replies, xml ) | Need Help?? |
This glob thing can be a problem. A long time ago I got tripped up with the 3 versions of glob that were in use at that time in the ActiveState version of Perl that I was using. I changed my code to use readdir() and that solved the problem. Nowadays, Perl glob is a lot more uniform and well behaved. This prints all simple files, but skips directories. For what you want, I would consider File::Find. Consider this code also. I think in Unix there can be special things that are not simple files or directories. I would use a file test to see what this name actually means. Note that if this is not the current directory, you need to spec the full path name for file tests. Update: File operations like "open file" or "open directory" are "expensive" in terms of performance. I would expect my code to run faster than the OP's code, but I did not benchmark this in any serious way. If the directories are small and this is not done that often, I don't think that will make any difference at all. Also be aware that there is a special variable for repeated file tests, "_". like elsif (-d _) {do something{ That tests the structure returned by the previous file test operation for a different flag. Overall, unless there is a performance or other problem (special kinds of files), I see no problem with the OP's code.
In Section
Seekers of Perl Wisdom
|
|