免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2391 | 回复: 4
打印 上一主题 下一主题

《Intermediate Perl》中一段CODE求教!【解决】 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-11 00:45 |只看该作者 |倒序浏览
谁能帮讲讲这段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;



[ 本帖最后由 windows.li 于 2008-6-11 10:18 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-06-11 09:49 |只看该作者
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......
------------貌似又不对,怪怪的.......请大家指教

[ 本帖最后由 windows.li 于 2008-6-11 09:52 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-06-11 10:18 |只看该作者
不要打我,我明白了~~
split没有看清楚,现在明白了

论坛徽章:
0
4 [报告]
发表于 2008-06-11 10:36 |只看该作者
明白了就好

论坛徽章:
0
5 [报告]
发表于 2008-06-12 13:22 |只看该作者
研究研究,初来乍到,包涵一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP