in reply to read directory, fork processes
glob has a number of other advantages (and differences) apart from avoiding an extra child process each time you go around the loop. Using ls(1) results in a new-line at the end of each filename which (presumably) you have to remove, in addition you (presumably) have to prefix $DIRECTORY/ to each filename before you process it. You don't get any new-lines added with glob, and the directory name is included in the file name. Downside is that it does not handle directory names containing white-space (use File::Glob qw(glob); if that is an issue).while(1) { #@FILES = `ls -1 $DIRECTORY`; @FILES = glob("$DIRECTORY/*"); print "@FILES\n"; }
|
|---|