単に名詞だけを数えると、「山田太郎」を「山田」と「太郎」を別々に数えてしまう。
mecabに「山田太郎」で辞書登録すれば一語にできるがそれもめんどくさい。
そこで、「姓と名が連続して登場したらひとつの名詞とみなす」という風にしたのだが、どうもスッキリ書けず、下記のようになってしまった。
一応これで用は足せているのだが、もっと簡単にかけないかなあ・・・
foreach (@array){
    for (my $n = $m->parseToNode ($_); $n ; $n = $n->{next}) {
        my $surf=decode('utf8',$n->{surface});
        my $feature=decode('utf8',$n->{feature});
        my @features = split(/,/, $feature);
        if($features[0]=~ /名詞/) {
            if($features[3] eq "名"){
                if($saveword){ $surf = $saveword.$surf };
                    &check_word_hash($surf,\%hash);
                    $saveword = undef;
                }elsif($features[3] eq "姓") {
                    if($saveword){
                        &check_word_hash($saveword,\%hash);
                    }
                    $saveword = $surf;
                }else{
                    &check_word_hash($surf,\%hash);
                }
         }elsif($saveword){
             &check_word_hash($saveword,\%hash);
             $saveword = undef;
         }else{
             if($saveword){
                 &check_word_hash($saveword,\%hash);
                 $saveword = undef;
             }
         }
     }
}