in reply to Quickly reading the first line of a large number of files...
In order to read the first line, you have to open the file, one way or another; the only question is whether you do it in Perl or not. I suppose you could write a routine in C, but since you ask this on a Perl site, I suppose that's not in the cards. You could use (e.g.) your system's grep utility, telling it to print the line number and filename only, and then filter that list for filenames that match only on the first line, but that will scan the whole file each time.
The best place to look for a speedup would be, I suppose to cut down on the number of files you have to search by using filetests -- certainly skip directories, for example, and maybe you could assume that only executable files have #! lines worth looking at, not that that's a safe assumption, necessarily.
HTH
perl -e 'print "How sweet does a rose smell? "; chomp ($n = <STDIN>); +$rose = "smells sweet to degree $n"; *other_name = *rose; print "$oth +er_name\n"'
|
|---|