#!/usr/bin/perl -w use strict; my @elem = (0..100_000); use Benchmark ':all'; use Algorithm::Loops 'Filter'; cmpthese ( 100, { 'mapn' => sub { my @e = @elem; @e = map { $_ if (s/0/./g || 1) } @e }, 'for ' => sub { my @e = @elem; for (@e) { s/0/./g } }, 'mapc' => sub { my @e = map { $_ if (s/0/./g || 1) } @elem }, 'Filter' => sub { my @e = Filter { s/^\s+// } @elem }, }); __END__ ~/sviluppo/perl> ./loops.pl Rate Filter mapn mapc for Filter 4.00/s -- -1% -39% -53% mapn 4.06/s 1% -- -38% -52% mapc 6.57/s 64% 62% -- -23% for 8.54/s 113% 110% 30% --