diff options
Diffstat (limited to 'Aufgabe3')
| -rw-r--r-- | Aufgabe3/skript1.pl | 72 |
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]}; +} |
