1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
use strict; use warnings; open(my $text, "ue1.txt"); my $result = ""; my $count = 0; while (<$text>){ $result .= $_; } my $line = <STDIN>; foreach my $wert ($result) { if ($wert =~/$line/) { $count++; } } print $count; ausgegeben wird hier dann 0, da Count ja auf null gesetzt wurde. ich wollte aber eigentlich das die Count variable immer um 1 erhöht wird, sobald das Wort im text gefunden wurde.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#!/usr/bin/perl use strict; use warnings; my $search = <STDIN>; # Eingabe des Suchwortes chomp $search; # Zeilenumbruch von Eingabe entfernen my $count = 0; open(my $file, "ue1.txt"); while (<$file>){ chomp; # Zeilenumbruch von eingelesene Zeile entfernen my @tmp = split / /, $_; # Alle Wörter mit Satzzeichen in ein Array packen foreach( @tmp ){ # Array durchlaufen s/[^\w]//g; # Alle non word character entfernen (Satzzeichen) $count++ if lc $_ eq lc $search; # Wenn das wort nun deiner Eingabe entspricht (Vergleich mit lowercase) - zähle $count hoch } } print $count;
$count += (scalar $wert =~ /(\b$line\b)/g);