有人可以帮助我如何将包含空格分隔的单词的字符串转换为散列,其中散列键是字符串中的单词,散列值是散列中单词的出现次数?
感谢
答案 0 :(得分:7)
这样的东西?
use strict;
use warnings;
use Data::Dumper;
my $string = "foo bar baz foo bar foo bar quux";
my %count;
$count{$_}++ for split /\s+/, $string;
print Dumper( \%count );
输出:
$VAR1 = {
'bar' => 3,
'baz' => 1,
'quux' => 1,
'foo' => 3
};
答案 1 :(得分:1)
$string = "do re me fa so la te do";
for $word ( split " +", $string )
{
$word_count{$word}++;
}
for $word ( keys %word_count )
{
print "$word\t$word_count{$word}\n";
}
我更喜欢“+”到“\ s +”,因为后者会剪切所有空格。你特意说空格,所以我只想在实际空间上剪切。