在 Perl 中使用哈希值和键

在 Perl 中使用哈希值和键
  1. 使用 <> 运算符从用户那里读取一个句子,将句子拆分为一个单词数组(提示:使用 split(/regex/, $string)),并输出该句子中有多少个单词。

  2. 创建一个哈希,其中包含句子中的单词作为键,每个单词出现的次数作为关联值,并按字母顺序打印出句子中每个单词出现的次数。

好的,上面的问题是作为作业交给我的!在您认为我会要求您解答之前,我并不是在寻求一些关于如何完成它的指导!

我已经完成了第一部分,这实际上非常简单!它将粘贴在下面:

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喜好),打印每个哈希键和相应的哈希值。

自从作为练习,你必须找到如何用代码来表达这一点。

相关内容