if ($data !~~ m/[E-R]\d\d\d/) {print "Error: $data\n"} else {print "No Error: $data\n"}
Wenn ich E145 eingebe, läuft das Script trotzdem in Error.
+2 replies
jan
2014-04-02 09:43
User since 2003-08-04
2536
Artikel ModeratorIn
Du hast eine Tilde zuviel, !~ ist für den negativen Match.
Pure Spekulation: dein jetziger Code involviert den Smartmatch-Operator oder tut sonstige Dinge ;)
Übrigens: aktuell geh dein RE auf E-R, nicht auf E und R, also F123 würde auch passen. Falls das nicht gewollt ist, raus mit dem Bindestrich!
cohama
2014-04-02 10:33
User since 2011-08-16
102
Artikel BenutzerIn
Hallo jan,
vielen Dank. Ziel errecht.
Relais
2014-04-02 10:15
User since 2003-08-06
2246
Artikel ModeratorIn
Sollen einer von E145 oder R167 im String enthalten sein?
m/[E-R]\d\d\d/ bedeutet übrigens: m/[EFGHIJKLMNOPQR]\d\d\d/
Das heißt, das Regex match auf: ein Zeichen aus der Menge von alphabetisch E bis R, gefolgt von drei Ziffern.