#!/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 9 Jahren