| |
|
| |
 |
|
perl教学 第十篇 格式化输出之二
|
|
| 日期:2005-7-18 8:46:11 来源:易特网络技术 编辑:黑鹰 点击: |
三、在打印格式中显示值 我们使用打印格式的主要原因当然是格式化存贮在简单变量或数组变量中的值从而生成可读性好的输出,这一目的用“值域”来实现。每个值域指定一个值,如变量或表达式,调用write函数时,该值就以值域指定的格式显示。 1、通用的打印格式 打印格式的一个缺点是定义中包含了变量名,例如:
format myformat = ========================================================== the winning number is @<<<<< $winnum ========================================================== . 当调用write输出此格式时,必须记着它使用了变量$winnum。用子程序和局域变量就可以创建更通用的打印格式。下例从stdin输入一个文件并输出五个出现频率最高的字母及出现次数。
1 : #!/usr/local/bin/perl 2 : 3 : while ($line = ) { 4 : $line =~ tr/a-z/a-z/; 5 : $line =~ s/[^a-z]//g; 6 : @letters = split(//, $line); 7 : foreach $letter (@letters) { 8 : $lettercount{$letter} += 1; 9 : } 10: } 11: 12: $~ = "writeheader"; 13: write; 14: $count = 0; 15: foreach $letter (reverse sort occurrences 16: (keys(%lettercount))) { 17: &write_letter($letter, $lettercount{$letter}); 18: last if (++$count == 5); 19: } 20: 21: sub occurrences { 22: $lettercount{$a} <=> $lettercount{$b}; 23: } 24: sub write_letter { 25: local($letter, $value) = @_; 26: 27: $~ = "writeletter"; 28: write; 29: } 30: format writeheader = 31: the five most frequently occurring letters are: 32: . 33: format writeletter = 34: @: @<<<<<< 35: $letter, $value 36: . 运行结果如下:
$ program this is a test file. this test file contains some input. the quick brown fox jumped over the lazy dog. ^d the five most frequently occurring letters are: t: 10 e: 9 i: 8 s: 7 o: 6 $
|
上一篇:perl教学 第十篇 格式化输出之三
下一篇:perl教学 第十篇 格式化输出之一
[发送给好友] [打印本页] [关闭窗口] [返回顶部] 转载请注明来源:http://www.iyit.net |
|
| 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。 |
| 责任编辑: 黑鹰 |
投稿作者: 易特网络 |
| 信息来源: 易特网络技术 |
录入时间: 2005-7-18 8:46:11 |
| 浏览次数: |
投稿信箱: shtghy@163.com |
|
|
|
|