http://www.perlmonks.org?node_id=980536


in reply to A simple grouping of list items

Just for fun, golfing...
"" =~ /()/; for (@list) { sleep(5) if !/^$1/; print; /^(.+)\:/; }
By the way the original script wasn't working if the items were ending with \n, because \n wasn't being replaced and $item was never matching $previous on the next iteration. However, if there were no \n characters, I had to set $| to non zero to get the expected behavior, otherwise output was getting buffered and was printed in one chunk at the very end.