diff options
| author | Stefan Suhren <suhren.stefan@fh-swf.de> | 2015-11-06 00:26:30 +0100 |
|---|---|---|
| committer | Stefan Suhren <suhren.stefan@fh-swf.de> | 2015-11-06 00:57:13 +0100 |
| commit | ae6ef1e1b29651ef9731a176d03774a52644bd8b (patch) | |
| tree | e4aaf51c109460a7fb5bf9a06f3290c365fcd0ff | |
| parent | c1c62f3d39189798c8c37b4df62e3b0071c1977b (diff) | |
| download | Skriptsprachen-ae6ef1e1b29651ef9731a176d03774a52644bd8b.tar.gz Skriptsprachen-ae6ef1e1b29651ef9731a176d03774a52644bd8b.zip | |
Add a3 s2 for the riddle solver
| -rw-r--r-- | Aufgabe3/skript2.pl | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/Aufgabe3/skript2.pl b/Aufgabe3/skript2.pl new file mode 100644 index 0000000..da9a20a --- /dev/null +++ b/Aufgabe3/skript2.pl @@ -0,0 +1,95 @@ +#!/usr/bin/env perl +#=============================================================================== +# +# FILE: skript2.pl +# +# USAGE: ./skript2.pl +# +# DESCRIPTION: +# +# OPTIONS: --- +# REQUIREMENTS: --- +# BUGS: --- +# NOTES: --- +# AUTHOR: Stefan Suhren (su), suhren.stefan@fh-swf.de +# ORGANIZATION: FH Südwestfalen, Iserlohn +# VERSION: 1.0 +# CREATED: 04.11.2015 12:22:03 +# REVISION: --- +#=============================================================================== + +use strict; +use warnings; +use utf8; + +# enforce utf-8 mode +binmode (STDIN, ":encoding(UTF-8)"); +binmode (STDOUT, ":encoding(UTF-8)"); +binmode (STDERR, ":encoding(UTF-8)"); +use open ":encoding(UTF-8)"; + + +my $german_file_name = 'german.lst'; # input file name + +open my $germanFile, '<', $german_file_name + or die "$0 : failed to open input file '$german_file_name' : $!\n"; + +my %german; + +while (my $line = <$germanFile>) +{ + $german{uc $line} = 0; +} + +close $germanFile + or warn "$0 : failed to close input file '$german_file_name' : $!\n"; + + +my $quadratFile_file_name = 'quadrat.dat'; # output file name + +open my $quadratFile, '<', $quadratFile_file_name + or die "$0 : failed to open input file '$quadratFile_file_name' : $!\n"; + +my @loesung; + +while (my $line = <$quadratFile>) +{ + if (exists $german{uc $line}) + { + push @loesung, uc $line; + } +} + +close $quadratFile + or warn "$0 : failed to close output file '$quadratFile_file_name' : $!\n"; + +# sort array +@loesung = sort @loesung; + +# Remove double entries + +my @loesung_unique; + +push @loesung_unique, $loesung[0]; + +foreach my $unique (@loesung) +{ + if ($unique ne $loesung_unique[$#loesung_unique]) + { + push @loesung_unique, $unique; + } +} + + +my $loesungFile_file_name = 'loesung.dat'; # output file name + +open my $loesungFile, '>', $loesungFile_file_name + or die "$0 : failed to open output file '$loesungFile_file_name' : $!\n"; + +print $loesungFile @loesung_unique; + +close $loesungFile + or warn "$0 : failed to close output file '$loesungFile_file_name' : $!\n"; + +# Plus one as $# only returns the highest field index +printf "%d unique words were found", $#loesung_unique+1; |
