my $table = EulerTable->new(); $table->append_row([ split /\s/, $_ ]) while (); my $n = 4; # we want four in a row my $functions = { biggest_sum => sub { my $s; $s += $_ for @_; $s }, biggest_product => sub { my $p = 1; $p *= $_ for @_; $p }, equal_100 => sub { my $s; $s += $_ for @_; $s == 100 ? 1 : 0 }, }; my $results = $table->find_max_n_by($n, $functions->{'biggest_product'}); print Dumper $results;