True, comments can be eliminated completely (along with any preceding whitespace), to wit:
s/\s*#.*$//; # first remove any comments
But the expression,
is incorrect. Even the shorter equivalent,/([^\s]+)/;
/(\S+)/;
is incorrect: if the line contains more than one word, this will only match the first one; you are explicitly disallowing embedded whitespace. We need to match from the first non-whitespace character to the last non-whitespace character and should include all intervening characters (including embedded whitespace).
Perhaps your point regarding the final if has merit, but assuming we are dealing with files of up to several thousand lines (not, say millions), the performance hit should be nearly negligible.
dmm
You can give a man a fish and feed him for a day ...In reply to Re(3): parsing comments in newline-delimited files as lists
by dmmiller2k
in thread parsing comments in newline-delimited files as lists
by Amoe
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |