Ich bin Perl sehr neu, und ich versuche, ein Wort Frequenzzähler als Lernübung zu schreiben.Warum wird mein Beispiel für das Wort Frequenzzähler in Perl geschrieben, das keine brauchbare Ausgabe liefert?
Ich bin jedoch nicht in der Lage, den Fehler in meinem Code unten herauszufinden, nachdem ich daran gearbeitet habe. Das ist mein Code:
$wa = "A word frequency counter.";
@wordArray = split("",$wa);
$num = length($wa);
$word = "";
$flag = 1; # 0 if previous character was an alphabet and 1 if it was a blank.
%wordCount = ("null" => 0);
if ($num == -1) {
print "There are no words.\n";
} else {
print "$length";
for $i (0 .. $num) {
if(($wordArray[$i]!=' ') && ($flag==1)) { # start of a new word.
print "here";
$word = $wordArray[$i];
$flag = 0;
} elsif ($wordArray[$i]!=' ' && $flag==0) { # continuation of a word.
$word = $word . $wordArray[$i];
} elsif ($wordArray[$i]==' '&& $flag==0) { # end of a word.
$word = $word . $wordArray[$i];
$flag = 1;
$wordCount{$word}++;
print "\nword: $word";
} elsif ($wordArray[$i]==" " && $flag==1) { # series of blanks.
# do nothing.
}
}
for $i (keys %wordCount) {
print " \nword: $i - count: $wordCount{$i} ";
}
}
Es ist weder Drucken "hier", noch die Worte. Ich mache mir zu diesem Zeitpunkt keine Gedanken über die Optimierung, obwohl jede Eingabe in diese Richtung ebenfalls sehr geschätzt würde.
Vielen Dank für die beiden Vorschläge. Sie arbeiteten. – Brahadeesh