#!/usr/local/bin/perl -w use Benchmark; my (@words, $count); open(TESTDATA, "perldoc -t perlfunc|") || die $!; while() { chomp; push @words, /(\S+)/g } print @words . " words\n"; my $alpha = '[a-zA-Z]'; my $alnum = '[a-zA-Z0-9]'; my $qr = qr/^$alpha$alnum+$/; timethese(100, { '/^$alpha$alnum+$/ ' => \&testsub, '/^$alpha$alnum+$/o' => \&testsubo, '/$qr/ ' => \&testsubqr1, '$qr ' => \&testsubqr2, '/$qr/o ' => \&testsubqro, }); sub testsub { foreach (@words) { $count++ if(/^$alpha$alnum+$/); } } sub testsubo { foreach (@words) { $count++ if(/^$alpha$alnum+$/o); } } sub testsubqr1 { foreach (@words) { $count++ if(/$qr/); } } sub testsubqr2 { foreach (@words) { $count++ if($_ =~ $qr); } } sub testsubqro { foreach (@words) { $count++ if(/$qr/o); } }