use lib '.'; use Part1; package Part2; use List::AllUtils qw/ sum /; use 5.36.0; sub valid_equation ( $total, @numbers ) { return $numbers[0] == $total if @numbers == 1; return 0 if $numbers[0] > $total; my $i = shift @numbers; my $j = shift @numbers; return 1 if valid_equation( $total, "$i$j", @numbers ); return 1 if valid_equation( $total, $i*$j, @numbers ); return 1 if valid_equation( $total, $i+$j, @numbers ); return 0; } sub solve ($equations) { return sum map { $_->[0] } grep { valid_equation(@$_) } @$equations; } 1;