要求:读取一系列单词,每行一个直到文件结束,然后打印每个单词出现的次数。要求按照ASCII码排序输出。
说明:
1. 本脚本中用到了数组的去重知识点,这在以前并没有学到过,是从网上找出来的,由于能力有限,目前只有通过去重才能构成题目要求的哈希。
2. 脚本中用了两次循环,和多次数组赋值,如果文本很大的话,这对于内存开销是相当大的,我想在以后学习过程中会有优化的方法,暂时就这样写了。
脚本中用到的文本内容为:
cat 6.2.txt
g
b
k
a
c
c
d
e
e
e
f
g
h
a
f
c
a
c
脚本内容:
说明:
1. 本脚本中用到了数组的去重知识点,这在以前并没有学到过,是从网上找出来的,由于能力有限,目前只有通过去重才能构成题目要求的哈希。
2. 脚本中用了两次循环,和多次数组赋值,如果文本很大的话,这对于内存开销是相当大的,我想在以后学习过程中会有优化的方法,暂时就这样写了。
脚本中用到的文本内容为:
cat 6.2.txt
g
b
k
a
c
c
d
e
e
e
f
g
h
a
f
c
a
c
脚本内容:
- #! /usr/bin/perl
- if ( ! open TEXT, "./6.2.txt" ) {
- die $!;
- }
- chomp (@a = );
- close TEXT;
- @a = sort @a;
- my @b = grep { ++$co{$_} < 2;} @a;
- for (@b) {
- my $count = 0;
- $w = $_;
- push (@c, $_);
- @d = @a;
- while (@d) {
- my $b = shift @d;
- if ($w eq $b) {
- $count++;
- }
- }
- if ( $count > 0 ) {
- push (@c, $count);
- }else {
- push (@c, 1);
- }
- }
- my %h = @c;
- for (@b) {
- print "$_ => $h{$_}\n";
- }
编辑回复