use Algorithm::Combinatorics qw(permutations); use strict; my @numbers = qw(9 -4 8 6 10); my @operators = qw(+ - * /); my $total = 7; #required result my $num_iter = permutations(\@numbers); while (my $nums = $num_iter->next){ my $op_iter = permutations(\@operators); while (my $ops = $op_iter->next) { my $str = $nums->[0]; $str = "($str $ops->[$_] " . $nums->[$_+1] . ")" for (0..3); if ($total == eval $str) { print "$str = $total\n"; } } }