#!/usr/bin/perl -w use strict; use Benchmark qw(timethese); my @data = ("sponge\n","\n", "wibble\n","boing\n", "spam\n","\n"," spud\n"); my $nsre = qr/\S/; my $isre = qr/^\s+$/; timethese(1E6, { 'nospace' => sub { grep {/$nsre/} @data; }, 'isspace' => sub { grep {!/$isre/} @data; }}) #### Benchmark: timing 1000000 iterations of isspace, nospace... isspace: 67 wallclock secs (56.34 usr + 0.15 sys = 56.49 CPU) @ 17702.25/s (n=1000000) nospace: 63 wallclock secs (49.19 usr + 0.26 sys = 49.45 CPU) @ 20222.45/s (n=1000000)