Wie kann ich die 100 meistverwendeten Zeichenfolgen (Wörter) in einer .txt
Datei mit Perl finden? Bisher habe ich folgendes:100 meist verwendete Zeichenfolgen in Datei
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";
}
Aber das zählt nur jedes Wort und organisiert es in alphabetischer Reihenfolge. Ich möchte die Top 100 am häufigsten verwendeten Wörter in der Datei, sortiert nach Anzahl der Vorkommen. Irgendwelche Ideen?
Verwandte: Count number of times string repeated in files perl
Aus Neugier, die Teil (e) der Antwort erfordert speziell v5.12 Perl? Die 'Warnungen verwenden FATAL =>" utf8 ";' oder die 'use open qw (...)' oder beides? –
@ JonathanLeffler Ich dachte sehr intensiv darüber nach, denn die Antwort ist überhaupt nichts. Ich gebe es einfach ein, weil ich denke, dass jede Perl-Quelleinheit explizit die tatsächliche Version deklarieren sollte, unter der sie lief. Dies liegt daran, wie überraschend flüchtig die subtil wechselnde Syntax und Semantik der Sprache ist, seit sie die zweistelligen Zahlen in den Veröffentlichungsnummern erreichte. Das "offene" Pragma wurde in v5.6 uraufgeführt, allerdings ohne eine Versionsnummer. Ich erinnere mich nicht, wann utf8 Warnungen zum ersten Mal erschienen, noch wann Warnungen auf diese Weise zuerst fatalisierbar waren; Ich bezweifle, dass dies später als V5.8 war. – tchrist
@tchrist: Frage: Beim Ausführen des Programms gegen meine Textdatei bekomme ich den Fehler: 'Verwendung von nicht initialisierten Wert $ _ in Split'. Irgendwelche Ideen warum? – Dynamic