use Text::ParseWords; use List::Util qw(shuffle); print map{" $_"} shuffle quotewords((time%2)?'\s+':'[A-Z]',0,<>);