Perl - 如何将包含空格分隔的单词的字符串转换为哈希

时间:2013-05-22 17:17:49

标签: perl

有人可以帮助我如何将包含空格分隔的单词的字符串转换为散列,其中散列键是字符串中的单词,散列值是散列中单词的出现次数?

感谢

2 个答案:

答案 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 +”,因为后者会剪切所有空格。你特意说空格,所以我只想在实际空间上剪切。