1
如何使用Perl在.txt
文件中找到最常用的100個字符串(單詞)?到目前爲止,我有以下內容:文件中使用最多的100個字符串
use 5.012;
use warnings;
open(my $file, "<", "file.txt");
my %word_count;
while (my $line = <$file>) {
foreach my $word (split ' ', $line) {
$word_count{$word}++;
}
}
for my $word (sort keys %word_count) {
print "'$word': $word_count{$word}\n";
}
但是,這隻計算每個單詞,並按字母順序組織它。我想要文件中排名前100的最常用詞,按出現次數排序。有任何想法嗎?
相關:Count number of times string repeated in files perl
在對答案的好奇心,該部分(S)特別需要Perl V5.12? '使用警告FATAL =>「utf8」;',或者'使用open qw(...)',或者兩者都使用? – 2012-03-31 15:49:23
@JonathanLeffler我對此非常沉重,因爲答案根本就沒有。我只是因爲我認爲每個Perl源代碼單元都應該明確聲明它運行的實際版本。這是因爲語言的語法和語義有微妙的變化,因爲它在發行版本中達到了兩位數。儘管還沒有版本號,但是v5.6版本的「開放式」編譯指示仍然有效。我不記得什麼時候第一次出現utf8警告,也沒有記得警告首先以這種方式死亡;不過,我懷疑這比v5.8更晚。 – tchrist 2012-03-31 15:55:34
@tchrist:問題:當針對我的文本文件運行程序時,出現錯誤:'在split中使用未初始化的值$ _'。任何想法爲什麼? – Dynamic 2012-03-31 15:57:37