my @records = ('.66+5638+copper globe', '1.00+1396+the blocks', '.33+4055+hunt draw'); my @sorted = map { join '+', @$_ } sort { $a->[0] <=> $b->[0] } map { [ split /\+/ ] } @records;