in reply to split tosses away empty components even with positive width separators?
If you run split /(x)/, 'x';, you get at least your leading empty field plus one with the separator.