- 论坛徽章:
- 307
|
本帖最后由 sunzhiguolu 于 2016-07-10 12:04 编辑
看了篇帖子, 内容如下:
a 1
b 21
c 13
d 24
e 15
f 16
g 27
h 9
i 31
j 65
j 35
k 55
这些数字中,小于10的出现2次,10-20出现了3次,20-40出现了5次,大于40出现了2次。
如何按这个范围统计呢?
输出:
<10 2
10-20 3
20-40 5
>40 2
我的代码如下:- #!/usr/bin/perl
- use strict;
- use warnings;
- my @aStat;
- while (<DATA>){
- my (undef, $num) = split;
- my @aExpress = ("$num < 10", "$num > 10 and $num <= 20", "$num >= 20 and $num < 40", "$num > 40");
- foreach (0 .. $#aExpress){
- $aStat[$_]++ if (eval $aExpress[$_]);
- }
- }
- printf ("<10 %d\n10-20 %d\n20-40 %d\n>40 %d\n",@aStat);
- __DATA__
- a 1
- b 21
- c 13
- d 24
- e 15
- f 16
- g 27
- h 9
- i 31
- j 65
- j 35
- k 55
复制代码 |
|