perl: 请问下面这段小程序是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/09/13 10:50:27
%seen = ();
$string = "an apple a day";
foreach $byte (split //, $string) {
$seen{$byte}++;
}
print "unique chars are: ", sort(keys %seen), "\n";

%seen = (); # 定义散列 seen
$string = "an apple a day"; #定义变量 string
foreach $byte (split //, $string) { # 依次把string中的字符取出,传给 byte(空格也算一个字符的)
$seen{$byte}++; # 在散列seen中,以该字符为key的value加一(就是统计该字符累计出现次数)
}
print "unique chars are: ", sort(keys %seen), "\n";# 打出seen中获得的全部key的值。
你可以用print %seen;来看一下里面的结果就更清楚了。

总体来说,以上程序就是统计一个字符串里面一共出现了哪些字符(通过散列实现了去重,同时统计了每个字符出现的次数)