note
graff
Thanks! I almost agreed with your first suggestion, until I remembered why I used "default" as the, um, default value for the delimiter option. It seemed a lot less likely that someone would actually need to use the word "default" as a column delimiter, and rather more likely that they might want to use a single space character -- not in the "magical" sense of <c>split ' '</c> but rather in the literal sense of <c>split / /</c> -- and this entails that <i>every</i> time the user gives a delimiter on the command line, it should <i>always</i> be treated as a regex. This way you only get the "magical" split behavior when you don't supply the "-d regex" option, and you have the ability to split on single space if you want to.
<P>
As for your second point, it's true the code as originally posted could lead to an "out of memory" condition, if it got a very long stream of repeated lines. But I wanted an array that I could "pop" or "shift" off of in order to print a duplicate line only once. So to fix the possible memory consumption problem, instead of "pushing" onto the array every time there's a duplication, I just make sure the array never contains more than one element (and this happens to be the line that the user wants to see). That made the print statements a lot simpler too, which is nice.
<P>
Update: then again, after making that change to how I was using the "heldline" array, I finally realized that it doesn't have to be an array, which is exactly what you said. So I fixed it (and I thank you) again.
721864
721869