Chinaunix

标题: 问个perl的问题! [打印本页]

作者: unixthisyear    时间: 2012-02-28 11:20
标题: 问个perl的问题!
想学习学习perl语言,刚开始就出问题了,求教:

  1. #!perl -w

  2. sub total{
  3.         foreach(@_){
  4.                 $sum += $_ ;
  5.         }
  6.         $sum;
  7. }

  8. sub average{
  9.         my $average = &total(@_) / @_;
  10. }

  11. my @fred = qw { 1 3 5 7 9 11 };
  12. print "1->  Average: ".&average(@fred)."\n";

  13. my $total = &total(@fred);
  14. print "2->  ".$total."\n";
复制代码
1->  Average: 6
2->  72

  1. #!perl -w

  2. sub total{
  3.         foreach(@_){
  4.                 $sum += $_ ;
  5.         }
  6.         $sum;
  7. }

  8. sub average{
  9.         my $average = &total(@_) / @_;
  10. }

  11. my @fred = qw { 1 3 5 7 9 11 };
  12. # print "1->  Average: ".&average(@fred)."\n";

  13. my $total = &total(@fred);
  14. print "2->  ".$total."\n";
复制代码
2->  36

疑问1: 2次的total结果不一样,是哪里的问题?



作者: kurri    时间: 2012-02-28 12:55
$sum 是全局变量,每调用一次 &total 都是同一个$sum在累加
作者: Perl_Er    时间: 2012-02-28 13:42
  1. use strict;
  2. use warnings;
复制代码
回复 1# unixthisyear


   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2