Moin,
open(datei, "<index.html") || die "Datei nix da\n";
while(<datei>){
$x .= $_;
}
close(datei);
Wenn du schon die ganze Datei auf einmal einlesen willst, kannst du das auch mit "local $/;" vor dem <datei> (welches man übrigens der Konvention, wie alle Dateihandles, groß schreibt.).
$x =~ m/<!--start-->.(.*?).<!--ende-->/gism;
Das geht so nicht so ganz, wie du es jetzt gemacht hast. Ein Regex im Listencontext gibt eine Liste zurück, so dass sowas geht:
my @foo = $bar =~ m/irgendwas(.*)nochetwas/flags;
Grüße Andres Freund