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?