《Intermediate Perl》中一段CODE求教!【解决】

《Intermediate Perl》中一段CODE求教!【解决】

谁能帮讲讲这段CODE?先谢过~------该CODE来自Intermediate Perl
my @input_numbers = (1, 2, 4, 8, 16, 32, 64);

my @odd_digit_sum = grep digit_sum_is_odd($_), @input_numbers;

sub digit_sum_is_odd {

        my $input = shift;
                          
        my @digits = split //, $input;  # Assume no nondigit characters

        my $sum;
   
        $sum += $_ for @digits;
        
        return $sum % 2;
}
print join "\n",@odd_digit_sum;





QUOTE:
my @input_numbers = (1, 2, 4, 8, 16, 32, 64);

my @odd_digit_sum = grep digit_sum_is_odd($_), @input_numbers;

我是这样理解的:判断digit_sum_is_odd($_), 若它为真,则返回$_组成的列表。
那么:默认依次判断digit_sum_is_odd(1), digit_sum_is_odd(2), digit_sum_is_odd(4)......
则:SUB中,my $input = shift;即依次处理shift 1, shift 2, shift 4......
------------貌似又不对,怪怪的.......请大家指教

不要打我,我明白了~~
split没有看清楚,现在明白了
明白了就好
研究研究,初来乍到,包涵一下