#!/usr/bin/perl -w
# Celcius in Fahrenheit umwandeln und umgekehrt
# http://perl-lernen.blogspot.com/
print "\nGeben Sie bitte eine Temperatur ein (zb 34C, 78F): ";
$temp=;
chomp ($temp);
# Pruefen, ob ein Wert in gewuenschtem Format angegeben wurde
# Die regex ist durch die inneren 2 Klammerpaare in 2 Teile eingeteilt
# Der Variablen $1 wird der Zahlenwert zugewiesen
# Der Variablen $2 wird der Buchstabe C oder F zugewiesen.
if ($temp =~ m/^([-+]?[0-9]*\.?[0-9]+)\s*([CF])$/i)
{
# Nun schreiben wir die durch die obige regex ausgelesenen Werte in feste Variablen rein
# Dies ist wichtig, da $1 und $2 bei der nächsten Verwendung von "=~" wieder überschrieben werden!
$zahl=$1;
$typ=$2;
# Falls C oder c hinter der Zahl eingegeben wurde:
if ( $typ =~ m/c/i)
{
$celcius = $zahl;
$fahrenheit = ( $celcius * 9 / 5) + 32;
}
# Andernfalls; ergo wurde F oder f als Kennung benutzt:
# eine explizite Pruefung auf F oder f ist unnoetig, da schon durch regex erledigt
else
{
$fahrenheit = $zahl;
$celcius = ( $fahrenheit - 32) * 5 / 9;
}
# Ausgabe der Ergebnisse:
printf "%.2f Celcius = %.2f Fahrenheit\n",$celcius,$fahrenheit;
}
# Ungueltiger Wert oder Buchstabe eingegeben:
else
{
printf "Ungueltiger Wert eingegeben; Abbruch!\n";
}
Statische Webseite mit Perl generieren
vor 8 Jahren