Datum: 2001-06-20
Quelle: suse-linux
Der nachfolgende Perl-Zweizeiler testet eine Eingabe darauf, ob es sich um eine Zahl handelt und gibt dann eine Bestätigung aus. Genauso kann man natürlich einen Returncode werfen lassen. Das Perl-Script kann auch mit mehrzeiligen Eingaben (z. B. aus Dateien) gefüttert werden.
echo "1.23" | \
perl -ne 'chomp; print "$_ ist eine Zahl / is a number\n"
if /^[+-]?(?:\d+(?:[.,]\d*)?|[.,]\d+)$/;'
Als Zahlen werden Eingaben nach folgenden Mustern erkannt:
Ganzzahlen, wahlweise mit Vorzeichen +/- (also z. B. 42 oder -42)
Zahlen mit Kommastellen (als Dezimaltrenner gelten Punkt oder Komma) - z. B. 4,2 oder 4.2 - auch wieder wahlweise mit Vorzeichen.
Der Vor- oder der Nachkommaanteil kann wegfallen: .42 oder 42, sind gültig.