Se hai tutto il file in una variabile (la chiamo $s):
$s =~ /(.+?\#NEWS\#\s*?\-\-\>).*?(\<\!\-\-\s*?\#ENDNEWS\#.+)/s
$primo = $1;
$secondo = $2;
Nota: il primo ? forse non serve, mentre quelli del \s credo siano necessari.
Per trasformate una array in stringa unica e viceversa, ti arrangi da solo?