summaryrefslogtreecommitdiffstats
path: root/Aufgabe3
diff options
context:
space:
mode:
Diffstat (limited to 'Aufgabe3')
-rw-r--r--Aufgabe3/skript1.pl72
1 files changed, 72 insertions, 0 deletions
diff --git a/Aufgabe3/skript1.pl b/Aufgabe3/skript1.pl
new file mode 100644
index 0000000..f12260a
--- /dev/null
+++ b/Aufgabe3/skript1.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/env perl
+#===============================================================================
+#
+# FILE: skript1.pl
+#
+# USAGE: ./skript1.pl
+#
+# DESCRIPTION:
+#
+# OPTIONS: ---
+# REQUIREMENTS: ---
+# BUGS: ---
+# NOTES: ---
+# AUTHOR: Stefan Suhren (su), suhren.stefan@fh-swf.de
+# ORGANIZATION: FH Südwestfalen, Iserlohn
+# VERSION: 1.0
+# CREATED: 22.10.2015 17:02:35
+# 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 $artikel_file_name = 'artikel-artikelanzahl.txt'; # input file name
+
+open my $artikel, '<', $artikel_file_name
+ or die "$0 : failed to open input file '$artikel_file_name' : $!\n";
+
+my $artikelnummer;
+my $artikelanzahl;
+
+my $readlines;
+
+my %artikelhash;
+
+while (my $line = <$artikel>)
+{
+ # split lines into values
+ ($artikelnummer,$artikelanzahl) = split /\s+/, $line;
+
+ $artikelhash{$artikelnummer} += $artikelanzahl;
+
+ $readlines++;
+}
+
+close $artikel
+ or warn "$0 : failed to close input file '$artikel_file_name' : $!\n";
+
+foreach my $key (sort keys %artikelhash)
+{
+ printf "%10s : %10s\n", $key, $artikelhash{$key};
+}
+
+printf "Artikel gelesen: %10d\n", $readlines;
+printf "Artikel gelspeichert: %10d\n", scalar keys %artikelhash;
+
+my $topArtikelCount = 30;
+my @keys = sort { $artikelhash{$b} <=> $artikelhash{$a} } (keys %artikelhash);
+
+printf "\n%5s: %10s %10s\n", "Platz", "Artikel", "Anzahl";
+
+for (my $i = 0; $i < @keys && $i < $topArtikelCount; ++$i)
+{
+ printf "%5d: %10s %10s\n", $i+1, $keys[$i], $artikelhash{$keys[$i]};
+}