perl入门的一个小例子

perl入门的一个小例子,第1张

概述今天看了perl书的第一章,感觉perl真是很丰富的语言,博大精深,要掌握的好,真不容易,不过好歹先看懂一个入门的这个小例子,我也是算是有一个好的开始,希望能透过对这门语言的学习,开启一个新的思路。 这个例子是从数据文件grades中读取信息,通过执行average.pl来计算出每个学生的平均成绩。 可以实际运行,没用过perl的可以玩一玩。 average.pl: #!/usr/bin/perl

今天看了perl书的第一章,感觉perl真是很丰富的语言,博大精深,要掌握的好,真不容易,不过好歹先看懂一个入门的这个小例子,我也是算是有一个好的开始,希望能透过对这门语言的学习,开启一个新的思路。

这个例子是从数据文件grades中读取信息,通过执行average.pl来计算出每个学生的平均成绩。 可以实际运行,没用过perl的可以玩一玩。

average.pl:

#!/usr/bin/perl    // 指定perl程序的解释器存放位置
open(GRADES,"grades") or dIE "Can't open grades: $!\n";   //打开数据文件grades,得到一个文件句柄GRADES,如果不成功,执行dIE语句,退出程序,注意“or”的用法。
open(GRADES,"grades") and print "open grades successfully!\n";// 如果前一句执行成功,那么执行后一句print,注意“and”的用法。上面 这一句是我调试用的,用来练习   “or”和 “and”的真假判断。
   while ($line = <GRADES>) {        // 从文件句柄中读取一行数据, 注意如果是空白行也判断为真,所以对于此程序来说,文件中不能有空白行
      ($student,$grade) = split(" ",$line); //将该行数据以空格为分隔符,将两个数值分别存入标量$student和$grade中。
       $grades{$student} .= $grade . " ";   // grades是一个散列,以student为键值,将grade存入散列中,注意“.”的作用是给散列中的数值添加一个新的值,同时再添加一个空格,这个在C语言中是无法理解的。每个student可能会有多个grade,所以散列的数据结构适合存储一对多的关系
       print "$student: $grades{$student}\n";
   }

   foreach $student (sort keys %grades) {   //将散列grades中的键值进行排序,并且遍历这些键值
      $scores = 0;
      $total = 0;
      @temp_grades = split(" ",$grades{$student});  //   将键值student对应的所有grade取出来存入数组temp_grades中
      foreach $temp_grade (@temp_grades) {  //将数组中的grade进行累加
          $total += $temp_grade;
          $scores++;
      }
      $average = $total / $scores; // 计算出某个student的平均值。
      print "$student: $grades{$student}\tAverage: $average\n"; // 打印出某个student的平均值。
 }
~                  

grades:

No&#235;l 25 Ben 76 Clementine 49 norm 66 Chris 92 Doug 42 Carol 25 Ben 12 Clementine 0 norm 66 ~        

总结

以上是内存溢出为你收集整理的perl入门的一个小例子全部内容,希望文章能够帮你解决perl入门的一个小例子所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1294013.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存