From f08f2d0e3798ff90b7e68c46751e15b7b991a2a0 Mon Sep 17 00:00:00 2001 From: Martin Talarczyk Date: Fri, 13 Nov 2015 12:17:15 +0100 Subject: Commitel Aufgabe 1 bis 4 --- Aufgabe3/lagerVerwerwaltung.pl | 93 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 Aufgabe3/lagerVerwerwaltung.pl (limited to 'Aufgabe3/lagerVerwerwaltung.pl') diff --git a/Aufgabe3/lagerVerwerwaltung.pl b/Aufgabe3/lagerVerwerwaltung.pl new file mode 100644 index 0000000..54dd74a --- /dev/null +++ b/Aufgabe3/lagerVerwerwaltung.pl @@ -0,0 +1,93 @@ +#!/usr/bin/env perl +#=============================================================================== +# +# FILE: lagerVerwerwaltung.pl +# +# USAGE: ./lagerVerwerwaltung.pl +# +# DESCRIPTION: +# +# OPTIONS: --- +# REQUIREMENTS: --- +# BUGS: --- +# NOTES: --- +# AUTHOR: Martin Talarczyk (MT), talarczyk.martin@fh-swf.de +# ORGANIZATION: FH Südwestfalen, Iserlohn +# Matrikel-Nr.: 10036162 +# VERSION: 1.0 +# CREATED: 27.10.2015 17:47:22 +# REVISION: --- +#=============================================================================== + +use strict; +use warnings; +use utf8; + +binmode (STDIN, ":encoding(UTF-8)"); +binmode (STDOUT, ":encoding(UTF-8)"); +binmode (STDERR, ":encoding(UTF-8)"); +use open ":encoding(UTF-8)"; + + +#------------------------------------------------------------------------------- +# Variabelen Deklarasion +#------------------------------------------------------------------------------- + +my %artikelHash; +my $artikelNummer; +my $artikelAnzahl; +my $redeline; +my $platz = 0; +my @keys; + +#------------------------------------------------------------------------------- +# Datei artikel-artikelanzahl.txt einlesen und in Hash schreiben. +#------------------------------------------------------------------------------- +my $opfp_file_name = 'artikel-artikelanzahl.txt'; # input file name + +open my $opfp, '<', $opfp_file_name + or die "$0 : failed to open input file '$opfp_file_name' : $!\n"; + +while(my $line = <$opfp>) +{ + ($artikelNummer,$artikelAnzahl) = split /\s+/,$line; + + $artikelHash{$artikelNummer} += $artikelAnzahl; + + $redeline++; +} + +close $opfp + or warn "$0 : failed to close input file '$opfp_file_name' : $!\n"; + + + +#------------------------------------------------------------------------------- +# Ausgaben des Hashes sortirt nach Artikelnummer. +#------------------------------------------------------------------------------- + +printf "%s %s \n\n", "Nummer" ,"Anzahl"; + +foreach my $key ( sort keys %artikelHash ) +{ + printf "%6d %6d \n", $key , $artikelHash{$key}; +} + +#------------------------------------------------------------------------------- +# 30 Artikel mit höster Zugrifszahl. +#------------------------------------------------------------------------------- +@keys = sort {$artikelHash{$b} <=> $artikelHash{$a}} (keys %artikelHash); + +printf"\nArtikel mit den höchsten Zugriffszahlen\n"; + +printf"%s : %s%10s\n", "Platz", "Artikel", "Bestand"; + +for(my $i = 0; $i < 30 && $i < scalar @keys ; $i++) { + + printf "%5s : %7s%10s\n", $platz, $keys[$i], $artikelHash{$keys[$i]}; + + $platz++; +} + + +printf "%s Artikel im Bestand.\n%s Artikel in der Liste.\n", scalar keys %artikelHash, $redeline; -- cgit v1.2.3-70-g09d2