foreach jedes wort nur einmal
peter
- cgi
$KeybSatz = "$datei";
$KeybSatz =~ s/[^a-z0-9A-Z]/ /gi;
$KeybSatz =~ s/ / /gi;
@Keyb = split(/ /,"$KeybSatz");
$KeybSatzAnzahl =@Keyb;
foreach(@Keyb) {
print " $_\n";
}
soll aber keine doppelte wörter auslesn.
mfg peter
ich hoffe du benutzt
use strict;
use warnings;
$KeybSatz = "$datei";
^ ^ überflüssig.
$KeybSatz =~ s/[^a-z0-9A-Z]/ /gi;
^ überflüssig.
$KeybSatz =~ s/ / /gi;
^ überflüssig.
@Keyb = split(/ /,"$KeybSatz");
^ ^ überflüssig.
$KeybSatzAnzahl =@Keyb;
foreach(@Keyb) {
print " $_\n";
}
soll aber keine doppelte wörter auslesn.
Das verstehe ich nicht. Wenn du in einem Array keine doppelten Einträge haben möchtest, hilft dir perldoc -q duplicate
. Wie dort auch steht, hättest du vielleicht gar keinen Hash verwenden sollen.
Hallo Peter
Das sollte tun:
my %wordtable = ();
my @words = grep {$wordtable{$_}++ == 0} split(/ /,$satz);
Grüße
Daniel