![在 Perl 中使用哈希值和键](https://linux22.com/image/1474262/%E5%9C%A8%20Perl%20%E4%B8%AD%E4%BD%BF%E7%94%A8%E5%93%88%E5%B8%8C%E5%80%BC%E5%92%8C%E9%94%AE.png)
使用 <> 运算符从用户那里读取一个句子,将句子拆分为一个单词数组(提示:使用 split(/regex/, $string)),并输出该句子中有多少个单词。
创建一个哈希,其中包含句子中的单词作为键,每个单词出现的次数作为关联值,并按字母顺序打印出句子中每个单词出现的次数。
好的,上面的问题是作为作业交给我的!在您认为我会要求您解答之前,我并不是在寻求一些关于如何完成它的指导!
我已经完成了第一部分,这实际上非常简单!它将粘贴在下面:
print("please enter a sentence!\n");
$x = <>;
chomp $x;
@bases=split(" ",$x);
print ("@bases\n");
foreach $i (@bases){
print("$i\n");
}
$size=@bases;
print("the amount of words in this sentence are:$size\n");
我明白第二个问题要求我做什么,但是我在实施时遇到了麻烦!究竟如何计算一个单词在句子中重复的次数,然后将其用作该单词的值!我就是不知道!所以也许有人可以指导我走上正确的道路!我将不胜感激!
谢谢!如果我再弄清楚了,我会粘贴的!
答案1
把哈希想象成一个数组,它的下标(称为“键”)不限于整数。在这个问题中,键自然是脚本处理的单词,哈希值是每个键出现的次数。所以每次你找到一个单词时,使用那作为哈希键,将哈希值加一。
要按字母顺序打印结果,您需要构建所有哈希键的排序数组,然后进行循环(是否循环foreach
取决于for
喜好),打印每个哈希键和相应的哈希值。
自从是作为练习,你必须找到如何用代码来表达这一点。