summaryrefslogtreecommitdiffstats
path: root/Aufgabe2/skript3.pl
diff options
context:
space:
mode:
Diffstat (limited to 'Aufgabe2/skript3.pl')
-rw-r--r--Aufgabe2/skript3.pl74
1 files changed, 74 insertions, 0 deletions
diff --git a/Aufgabe2/skript3.pl b/Aufgabe2/skript3.pl
new file mode 100644
index 0000000..bf501aa
--- /dev/null
+++ b/Aufgabe2/skript3.pl
@@ -0,0 +1,74 @@
+#!/usr/bin/env perl
+#===============================================================================
+#
+# FILE: skript3.pl
+#
+# USAGE: ./skript3.pl
+#
+# DESCRIPTION:
+#
+# OPTIONS: ---
+# REQUIREMENTS: ---
+# BUGS: ---
+# NOTES: ---
+# AUTHOR: Stefan Suhren (su), suhren.stefan@fh-swf.de
+# ORGANIZATION: FH Südwestfalen, Iserlohn
+# VERSION: 1.0
+# CREATED: 09.10.2015 10:31:56
+# REVISION: ---
+#===============================================================================
+
+use strict;
+use warnings;
+use utf8;
+use English;
+
+# enforce utf-8 mode
+binmode (STDOUT, ":encoding(UTF-8)");
+binmode (STDIN, ":encoding(UTF-8)");
+use open ":encoding(UTF-8)";
+
+# suppress line reading
+undef $INPUT_RECORD_SEPARATOR;
+
+my $chapter_file_name = 'Stechlin-01.txt'; # input file name
+
+open my $chapter, '<', $chapter_file_name
+ or die "$0 : failed to open input file '$chapter_file_name' : $!\n";
+
+my $kapitel = <$chapter>;
+
+my %haeufig;
+my $zelen = 0;
+
+while (my $char = chop $kapitel)
+{
+ if ($char eq "\n")
+ {
+ $zelen++;
+
+ next;
+ }
+ $haeufig{$char}++;
+}
+
+close $chapter
+ or warn "$0 : failed to close input file '$chapter_file_name' : $!\n";
+
+my $count = 0;
+my $countChars = 0;
+
+foreach my $char (sort keys %haeufig)
+{
+ $count++;
+ $countChars += $haeufig{$char};
+ printf "%5s = %5d", $char, $haeufig{$char};
+ if($count % 3 == 0)
+ {
+ printf "\n";
+ }
+}
+
+printf "\n\n%5d Zeichen\n", $countChars;
+printf "%5d Zeilenvorschübe\n", $zelen;
+printf "%5d Zeichen insges.", $countChars + $zelen;