use strict; use warnings; my @input = ( -222, -221, -21, 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 ); foreach my $int (@input) { print "$int " if isSumDigitsOdd($int); } print "\n"; sub isSumDigitsOdd { my $num = shift; my $sum; $sum += $_ foreach (split //, abs $num); return ( $sum % 2 ); # return ( $sum & 1 ); would be fine also } #prints: -221 -21 1 1 3 5 21 34 89 144