Giving Users Lots of Leeway
When asked to type a list of domain names (as an example) into a textarea field, users might separate the domain names with a space, a comma, a semi-colon, a line feed, or a combination of those. Any character that doesn't occur in the domain name itself might be used to separate the names.
You, as the programmer, as expected to write code that can make sense of that.
Let's use the domain name example and assume a comma, semi-colon, and any white-space may be used as delimiters, singly or in combination.
Here is an example of what the field might contain:
example.com, ;, books.example.com sistersite.com, confusion.com anothersite.com morebooks.example.com;
And here is code to make sense of it:
$text =~ s/^[\s,;]*//s; $text =~ s/[\s,;]*$//s; @list = split /[\s,;]+/,$text; print join("\n",@list);
The first line removes any delimiters from the beginning of the file. The second line from the end of the file.
The third line splits the text into an array, splitting on any sequence of one or more delimiters.
The fourth line prints the array, one domain name at a time:
example.com books.example.com sistersite.com confusion.com anothersite.com morebooks.example.com
I like stuff like this :)
Will Bontrager