use strict; my @list = (-25, 14, 50, 20, -7, -8, -10); my @result = (); my $sum; for my $elem (@list) { for (@{[@result]}) { push @result, [ @$_, $elem ]; $sum = eval join '+' => @{$result[-1]}; print join(',', @{$result[-1]}), "\n" unless $sum; } push @result, [ $elem ]; print $elem, "\n" unless $elem; }