ein Kapitel zurück                                           ein Kapitel weiter

Mit map haben wir eine weitere komfortable Möglichkeit Arrays zu durchlaufen und zu bearbeiten. Einfaches Beispiel. Wir wollen alle Elemente eines Arrays mit einem  bestimmten Wert berechnen. Um map zu verwenden benötigen wir wiederum die  Standardvariable $_ in der unser Wert des Arrays steht der im Augenblick zu berechnen ist. Doch lassen wir ein Programm sprechen.......

#!/usr/bin/perl -w

@werte = (1..100);
@neuewerte = map {$_ * 2} @werte;
print @neuewerte , "\n";


Hiermit werden alle Werte in @werte verdoppelt und an das neue Array @neuewerte übergeben. Was im Prinzip schwierig aussieht verkappt sich auch nur als eine Einfache foreach-Schleife. Nur anstatt wie in anderen Programmiersprachen erst mal eine Funktion zu schreiben muss man in Perl nur noch diese Funktionen verwenden. Hier geschieht nichts anderes als das der aktuelle Wert vom Array @wert an die Standartvariable $_ übergeben wird und anschließend wird der Ausdruck in den geschweiften Klammern ausgewertet bzw. hier ausgerechnet und an dem selben Index von @neuewerte übergeben. Danach wird der Index um den Wert 1 erhöht und so weiter.

Wir wollen das ganze mal anhand eines Währungsumrechner demonstrieren, der eine Preisliste in einen bestimmten Kurs umrechnen soll..........

#!/usr/bin/perl -w

@werte = (1.99, 2.99, 4.99, 10.99);               #Preistabelle
$kurswert=0;

print "Sie können die Preistabelle zu einem bestimmten Kurs
         ausgeben lassen!\n";
print "Wie lautet der Kurs (Euro/Kurs) : ";
chomp ($kurswert=<STDIN>);

@kurs = map {$_ /$kurswert} @werte;

print "Aktueller Kurs : \n";
printf "%6.2f %6.2f %6.2f %6.2f\n", @werte;

print "Kurs umgerechnet :\n";
printf "%6.2f %6.2f %6.2f %6.2f\n", @kurs;


Im obrigen Beispiel werden sie schon überrascht gewesen sein über die simple  Ausgabe-Möglichkeit mittels............

print @neuewerte , "\n";

Im zweiten Beispiel dürfte sie (falls Programmiererfahrung)
diese Art...

printf "%6.2f %6.2f %6.2f %6.2f\n", @kurs;


...ein wenig überrascht haben. Damit werden wirklich die einzelnen Elemente formatiert ausgegeben.

ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf