Hallo zusammen,bin Anfänger und gerade am herumprobieren. Ziel ist folgendes. Der Nutzer gibt in einer Maske einen Text ein. Danach wird ein Button gedrückt und als Antwort gibt es eine Übersicht über die Anzahl der im Text vorkommenden Wörter. Nachstehend mein Code. Ich habe Probleme bei der Wörterverteilung. Ich bekomme es nicht hin daß mir die Wörter richtig gezählt und ausgegeben werden. Was mache ich nur falsch ?
Grüße,
Christian
#!perl
use CGI;
$q = new CGI;
$text = $q->param('textfeld');
if ($text eq "")
{
print $q->header,
$q->start_html('Wörter zählen'),
$q->p('<form action="./woerter8.pl" method="post">'),
$q->h3('Bitte geben Sie einen Text ein:'),
$q->p('<textarea name="textfeld" rows="10" cols="50" maxlength="1000" value=""></textarea>'),
$q->start_table(),
$q->Tr(
$q->td('<input type="submit" value="Absenden">'),
$q->td('<input type="reset" value="Reset"></from>')),
$q->end_table(),
$q->end_html()
}
else {
#Zeichenanzahl
@einzelzeichen = split //, $text;
$indexez = $#einzelzeichen;
$zeichenanzahl = $indexez + 1;
#Wörteranzahl
@woerter = split(/\W*\s+\W*/, $text);
$indexez = $#woerter;
$wortanzahl = $indexez + 1;
#Wörterverteilung
my %zaehler = ();
if (exists $zaehler{$wort}) {
$zaehler{$wort} ++;
}
else {
$zaehler{$wort} = 1;
}
print $q->header,
$q->start_html('Auswertung'),
$q->p('Der von Ihnen eingegebene Text'),
$q->p($text),
$q->p('besteht aus', $zeichenanzahl, 'Zeichen'),
$q->p('oder', $wortanzahl, 'Wörter'),
$q->p('Die exakte Verteilung der Wörter ist wie folgt:');
foreach $wort (sort keys %wortliste) {
print $q->p($wort, $zaehler{$wort},"\n");
}
print $q->end_html();
}
Datum: 05.06.2006-18:57
