#! /usr/bin/perl -w use strict; use Benchmark 'cmpthese'; my @none = ('a' .. 'm' ); my @short = ('a', ''); my @long = ('a' .. 'z', ''); my $iter = shift || -1; print "block_ne : [$_]\n" for grep {$_ ne ''} @short; print "block_len: [$_]\n" for grep {length} @short; print "bare_ne : [$_]\n" for grep $_ ne '', @short; print "bare_len : [$_]\n" for grep length, @short; cmpthese( $iter, { short_block_ne => q{grep {$_ ne ''} @short}, short_block_len => q{grep {length} @short}, short_bare_ne => q{grep $_ ne '', @short}, short_bare_len => q{grep length, @short}, } ); cmpthese( $iter, { none_block_ne => q{grep {$_ ne ''} @none}, none_block_len => q{grep {length} @none}, none_bare_ne => q{grep $_ ne '', @none}, none_bare_len => q{grep length, @none}, } ); cmpthese( $iter,{ long_block_ne => q{grep {$_ ne ''} @long}, long_block_len => q{grep {length} @long}, long_bare_ne => q{grep $_ ne '', @long}, long_bare_len => q{grep length, @long}, } );