Why make your life more difficult than it needs to be? I prefer the straightforward approach: First deal with comments by making them whitespace, then deal with extraneous whitespace:
while (<DATA>) { chomp; s/#.*$/ /; # first replace any comments with space # skip this line if it consists only of whitespace (or nothing) next if /^\s*$/; # at this point we KNOW there is at least some non-blank on the line # which is also non-comment. # Just grab everything sans leading/trailing whitespace my ($non_blank) = /^\s*(.+)\s*$/; push @enabled_lines, $non_blank if $non_blank; # 'if' may not be ne +cessary }
Of course this does not account for escaped comment characters, since I thought it would obscure the simplicity (I leave it as an exercise for the reader).
dmm
You can give a man a fish and feed him for a day ...In reply to Re: parsing comments in newline-delimited files as lists
by dmmiller2k
in thread parsing comments in newline-delimited files as lists
by Amoe
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |