2013-12-16 67 views
0

我必須找出文件中某個單詞出現的次數,無論是大寫還是小寫。我用 my%count;查找字數大寫或小寫

foreach my $line (split "\n", $text) 
{ 
    foreach my $word ($line =~ /(\w+)/g) 
{ 
    $count{$word}++; 
} 
} 

print "'love' occurs $count{myword} times\n"; 

我認爲(\ w +)會得到大寫和小寫,但它沒有。我知道當我在哈希中添加值時,我應該改變這種情況,但是當我這樣做時,我仍然沒有得到正確的答案。

+1

將'myword'改爲'love'。 – toolic

+0

您需要顯示一些輸入和輸出。 – toolic

回答

3

\w確實匹配大寫和小寫(以及0-9和下劃線)。 lc是無視案件的一種方式。

use warnings; 
use strict; 

my $text = ' 
Here are words to count. 
Words. And now more words. 
'; 

my %count; 
while ($text =~ /(\w+)/g) { 
    $count{lc $1}++; 
} 

use Data::Dumper; 
$Data::Dumper::Sortkeys=1; 
print Dumper(\%count); 

__END__ 

$VAR1 = { 
      'and' => 1, 
      'are' => 1, 
      'count' => 1, 
      'here' => 1, 
      'more' => 1, 
      'now' => 1, 
      'to' => 1, 
      'words' => 3 
     }; 
+1

非常感謝。 – user3108222

相關問題