请教:在<STDIN>前加入chomp导致错误

请教:在<STDIN>前加入chomp导致错误

原来的代码是小骆驼书上的第四章习题1,没有什么难度,如下:
sub total {
    my $sum = 0;
    foreach (@_){
        $sum += $_;
    }
    $sum;
}
my $user_total = &total(<STDIN>); #此为书上的原文
print "The total of those numbers is $user_total.\n";

我记得之前书上好像推荐过在输入数字时最好加上chomp,去掉跟在后面的回车,改写程序:
my $user_total = &total(chomp <STDIN>)); #出错

然后加入一些调试信息:
my @in;
my $user_total = &total(chomp (@in =<STDIN>));
print "\@in is @in\n";
print "The total of those numbers is $user_total.\n";
输出的@in数组就是去掉回车的内容,正确,而$user_total则是输入的数据的个数
请问我忽略了什么?
你看看 chomp 返回值是什么
miss a key word  "return"


QUOTE:
原帖由 cobrawgl 于 2008-4-2 10:53 发表
你看看 chomp 返回值是什么

呵呵,明白了
多谢楼上的两位热心回答!

chomp直接修改操作数,而不返回chomp后的结果
可以不用 return


QUOTE:
原帖由 formalin14 于 2008-4-2 16:17 发表
chomp直接修改操作数,而不返回chomp后的结果

呵呵,正解