jmo@foo:~> ls /some/small/dir|wc -l 322 jmo@foo:~> ls /some/large/dir|wc -l 12337 jmo@foo:~> perl ls.pl Benchmark: timing 5000 iterations of allready opendir on small dir, ls on small dir, opening dir on small dir... allready opendir on small dir: 3 wallclock secs ( 2.83 usr + 0.50 sys = 3.33 CPU) @ 1501.50/s (n=5000) ls on small dir: 30 wallclock secs ( 0.60 usr 2.48 sys + 11.90 cusr 16.85 csys = 31.83 CPU) @ 1623.38/s (n=5000) opening dir on small dir: 4 wallclock secs ( 3.31 usr + 0.61 sys = 3.92 CPU) @ 1275.51/s (n=5000) Benchmark: timing 5000 iterations of allready opendir on large dir, ls on large dir, opening dir on large dir... allready opendir on large dir: 102 wallclock secs (87.82 usr + 13.04 sys = 100.86 CPU) @ 49.57/s (n=5000) ls on large dir: 57 wallclock secs ( 0.51 usr 1.99 sys + 27.62 cusr 27.09 csys = 57.21 CPU) @ 2000.00/s (n=5000) opening dir on large dir: 101 wallclock secs (88.11 usr + 12.37 sys = 100.48 CPU) @ 49.76/s (n=5000)