in reply to Splitting without losing

Try:
split /(?<!_)(?=_)/,$string; # Using _ instead of space like your exa +mple.
ie. Split on the zero-width bit between a non-space on the left, and a space on the right, without capturing either.