I thought that $WBF{$x} = 'm/([A-Za-z\-\. ]){1,40}/'; is for "max 40, min 1
characters", but it doesn;t seems to limit it!
--------------------------
The problem is that regular expressions are usually greedy.
What you did will work ANY number of chars.
what you want is (notice ^ for start and $ for end):
$WBF{$x} = 'm/^[ A-Za-z\-\.]{1,40}$/';
Good luck,
Jean-Paul