map { my $index = $_; $points < $data[$_]->{value} ? () : do { my @result = fit($points - $data[$_]->{value}, $index + 1); @result ? map([ $index, @$_ ], @result) : [ $index ] } $start .. $#data;