#!perl # Beispiel - prüfen von Kommandos use strict; use warnings; sub check_command { if ((local $_ = shift) eq 'end') { # Ende Nutzdaten return ''; } elsif ( # Kommandos verarbeiten /^set\s+nr\s*=\s*(\d+)$/ or /^set\s+typ\s*=\s*"([^"]+)"$/ and my $typ_flag = 1 ) { # verarbeitendes Programm für alle "set"-Kommandos print $typ_flag ? qq~Typ "$1"~ : "Nummer $1", " wird gesetzt.\n"; } else { # Fehlerbehandlung return qq~Unbekanntes Kommando "$_" entdeckt.\n~; } undef; } for ( 'set nr = 123', 'set typ="S4 Q"', 'Hallo', 'end', 'next', ) { my $rc = check_command $_; $rc and print "ERROR: $rc"; defined $rc and last; } Ergebnis: Nummer 123 wird gesetzt. Typ "S4 Q" wird gesetzt. ERROR: Unbekanntes Kommando "Hallo" entdeckt.