Похоже, что ваши группы являются "параграфами", поэтому читайте их как таковые; разбить слова на пробел; соедините их, используя один пробел (пробел), и напечатайте результат:
#!/usr/bin/env perl
use strict;
use warnings;
local $/ = '';
my @words;
while (<DATA>) {
@words = split;
print join q( ), @words, "\n";
@words = ();
}
__DATA__
word1
word2
word3
word4
word5
word6
word7
word8
word9
word10
word11
word12