use strict; use warnings; use Benchmark qw(cmpthese); my $line = "FIRST\tMIDDLE\tLAST\tSTRNO\tSTRNAME\tCITY\tSTATE\tZIP" . "\tFOO" x 42; sub trySplit { my @capture = split /\t/, $line; } sub trySplitSlice { my @capture = ( split /\t/, $line )[ 0, 2, 5 ]; } sub trySplitSliceLimit { my @capture = ( split /\t/, $line, 7 )[ 0, 2, 5 ]; } cmpthese( -5, { trySplit => sub { trySplit() }, trySplitSlice => sub { trySplitSlice() }, trySplitSliceLimit => sub { trySplitSliceLimit() } } );