#!/usr/bin/perl use warnings; use strict; =cut a) Legen Sie ein Hash an mit 4 beliebigen Produktnamen als Schlüssel und den dazugehörigen, beliebigen Preisen als Wert. (z.B. Apfel kostet 0.29. Benutzen Sie bei Fließkommazahlen den Punkt und nicht das Komma!) Geben Sie den Inhalt des Hashs auf die Standardausgabe aus, sodass der Benutzer erfährt, welche Produkte zu welchem Preis bestellbar sind. =cut my %h = ("Apfel" => 0.29, "Birne" => 0.34, "Pflaume" => 0.09, "Zitrone" => 0.40); my $i; foreach $i (keys(%h)) { print $i . "\t\t" . $h{$i} . "\n"; } =cut b) Erweitern Sie das Programm dahingehend, dass der Benutzer Bestellungen aufgeben kann. Er soll nacheinander Produktnamen eingeben können, die das Programm sich merken soll (Liste!), falls diese im Hash enthalten sind. Ist das Produkt nicht vorhanden, soll eine Meldung an den Benutzer ausgegeben werden. Verwenden Sie dazu innerhalb einer Abfrage die exists-Funktion: exists $hash{$schluessel} Wenn der Benutzer nichts weiteres bestellen möchte, soll er ein Stoppwort (z.B. Ende) eingeben können. (Zur eigenen Kontrolle sollten Sie nun alle bestellten Produkte ausgeben.) =cut my @best = (); while (1) { print "Bestellung: "; my $inp = ; chomp($inp); if ($inp eq "Ende") { last; } if (exists($h{$inp})) { push(@best, $inp); } else { print "Fehler: Produkt nicht vorhanden.\n"; } } =cut c) Zuletzt soll der Benutzer eine ausführliche Rechnung angezeigt bekommen. Dazu müssen die Produktnamen und die jeweiligen Preise ausgegeben sowie der Gesamtpreis berechnet und ausgegeben werden. Bsp.: Bestellt wurde: Produkt X1 zum Preis von: Y1 Euro Produkt X2 zum Preis von: Y2 Euro ... Der Gesamtpreis beträgt: Z Euro Machen Sie Gebrauch von Zeilenumbrüchen und/oder Tabulatoren (''\t'') um die Lesbarkeit zu verbessern. =cut print "\nRechnung:\n"; print "Bestellt wurde:\n"; my $sum = 0; foreach $i (@best) { print "Produkt \"$i\" zum Preis von:\t$h{$i} Euro.\n"; $sum += $h{$i}; } print "Der Gesamtpreis beträgt:\t$sum Euro.\n";