1. Frage
Lösung
#!/usr/bin/perl #Aufgabe 8.1 #Erzeugt eine Frequenzliste use strict; use warnings; my ($inFile,$line,$word,@words,%wordlist,$key); $inFile = "wittgenstein.txt"; open (IN,$inFile) or die "File not found!"; while($line = <IN>) { chomp($line); @words = split(/[\p{Z}\p{P}]+/,$line); foreach $word (@words) { if ($word ne "") { $wordlist{$word}++; } } } foreach $key (keys %wordlist) { print "Das Wort \"$key\" kommt $wordlist{$key} mal in dem Text vor.\n"; } close (IN);
#!/usr/bin/perl #Aufgabe 8.1.1 #Erzeugt eine sortierte Frequenzliste use strict; use warnings; my ($inFile,$line,$word,@words,%wordlist,$key); $inFile = "wittgenstein.txt"; open (IN,$inFile) or die "File not found!"; while($line = <IN>) { chomp($line); @words = split(/[\p{Z}\p{P}]+/,$line); foreach $word (@words) { if ($word ne "") { $wordlist{$word}++; } } } my @alle_sortierten_woerter; @alle_sortierten_woerter = sort {$wordlist{$a} <=> $wordlist{$b}} keys %wordlist; foreach $word (@alle_sortierten_woerter) { print "Das Wort \"$word\" kommt $wordlist{$word} mal in dem Text vor.\n"; } close (IN);
2. Frage
Lösung
#!/usr/bin/perl #Aufgabe 8.2 #Schreibt alle großgeschriebenen Wörter in eine Datei use strict; use warnings; my ($inFile,$outFile,$line,$word,@words,%wordlist,$key,@alle_sortierten_woerter); $inFile = "wittgenstein.txt"; $outFile = "grosse_woerter.txt"; open (IN,$inFile) or die "File not found!"; open (OUT,">",$outFile); while($line = <IN>) { chomp($line); @words = split(/[\p{Z}\p{P}]+/,$line); foreach $word (@words) { if ($word ne "") { $wordlist{$word}++; } } } @alle_sortierten_woerter = sort {$wordlist{$b} <=> $wordlist{$a}} keys %wordlist; foreach $word (@alle_sortierten_woerter) { if($word =~ /^[A-ZÄÖÜ]/) { print OUT "$word kommt $wordlist{$word} mal vor.\n"; } } close (IN); close(OUT);
3. Frage
Lösung
#Aufgabe 8.3 3.1 =~ /^\p{L}{3}$/ 3.2 =~ /[aeiouäöü]/i 3.3 =~ /[äöü]/i 3.4 =~ /net$/ 3.5 =~ /^[aeiouäöü]\p{L}{2,4}$/i 3.6 =~ /^\p{Lu}.*ung$/ 3.7 =~ /^\p{Lu}{1,8}$/ 3.8 =~ /^[^aeiouäöü]+$/i ODER !~ /[aeiouüöä]/i
4. Frage
Lösung
#!/usr/bin/perl #Aufgabe 8.4 #Ermittelt die Anzahl aller kleingeschriebenen Wörter use strict; use warnings; my ($inFile,$line,$word,@words,%wordlist,$key,$counter); $inFile = "wittgenstein.txt"; open (IN,$inFile) or die "File not found!"; while($line = <IN>) { chomp($line); @words = split(/[\p{Z}\p{P}]+/,$line); foreach $word (@words) { if ($word ne "") { $wordlist{$word}++; } } } $counter=0; foreach $key (keys %wordlist) { if($key =~ /^\p{Ll}/) { $counter++; } } print "Es kommen $counter klein geschriebene Wörter in dem Text vor.\n"; close (IN);
5. Frage
Lösung
#!/usr/bin/perl #Aufgabe 8.5 #Gibt alle Zeilen aus, die mit einem Großbuchstaben beginnen use strict; use warnings; my ($inFile,$line); $inFile = "wittgenstein.txt"; open (IN,$inFile) or die "File not found!"; while($line = <IN>) { if ($line =~ /^\p{Lu}/) { print $line; } } close (IN);
6. Frage
Lösung
#!/usr/bin/perl #Aufgabe 8.6 #Gibt alle Zeilen aus, in denen ein bestimmter Artikel vorkommt use strict; use warnings; my ($inFile,$line); $inFile = "wittgenstein.txt"; open (IN,$inFile) or die "File not found!"; while($line = <IN>) { if ($line =~ /\b[Dd]er\b/ || $line =~ /\b[Dd]ie\b/ || $line =~ /\b[Dd]as\b/) { print $line; } } close (IN);
ODER
#!/usr/bin/perl #Aufgabe 8.6 v2 #Gibt alle Zeilen aus, in denen ein bestimmter Artikel vorkommt use strict; use warnings; my $inFile = "wittgenstein.txt"; open (IN,$inFile) or die "File not found!"; while (<IN>){ if (/\b[Dd](er|ie|as)\b/) { print; } } close IN;
7. Frage
Lösung
#!/usr/bin/perl #Aufgabe 8.6 #Gibt alle Wörter aus, die von einem Satzzeichen gefolgt sind use strict; use warnings; my ($inFile,$line,$word,@words,%wordlist); $inFile = "wittgenstein.txt"; open (IN,$inFile) or die "File not found!"; while($line = <IN>) { chomp($line); @words = split(/ /,$line); foreach $word (@words) { if ($word =~ /\p{L}+\p{P}$/) { print "$word\n"; } } } close (IN);