#!/usr/local/bin/perl -w use strict; use Benchmark qw(:all); my $dir="/home/bv/tmp/testdir"; cmpthese('1000', { 'merlyn_1' => \&merlyn1, 'merlyn_2' => \&merlyn2, 'glob' => \&glob, } ); sub merlyn1 { opendir D, $dir or die; my $count = () = readdir D; $count -= 2; # :-) closedir D; } sub merlyn2 { opendir D, $dir or die; my $count = -2; $count++ while readdir D; closedir D; } sub glob { my $count = () = glob ("$dir/*"); $count += () = glob ("$dir/.[^.]*"); $count-=2; }