use strict; use warnings; my @input = ( -222, -221, -21, 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 ); print $_, " " for oddDigitSum(@input); print "\n"; exit 0; sub oddDigitSum { map { my $sum = 0; $sum+=$_ for split //, abs $_ ;; $sum % 2 ? $_ # keep oddities : () ; } @_; }