Thomas: Regulärer Ausdruck über mehrere Zeilen

Beitrag lesen

Hallo Zusammen, ich habe ein Problem mit den reg. Ausdrücken.
Ausgang ist eine XML-Datei, die mehere Zeilen hat.
Bsp: test.xml
<Komponente id="1234">
Text....
Text....
</Komponente>
<Komponente id="5678">
Text....
Text....
</Komponente>

Nun möchte ich die Textsegmente anhand der Id filtern.
In dem Fall soll
<Komponente id="1234">
Text....
Text....
</Komponente>
in ein Array geschrieben werden.
Hier meine Lösung:
In $zeile habe ich die XML Datei geschrieben.
open(WR, "<test.xml") || die "Datei wurde nicht gefunden\n";
$zeile = join('', <WR>);

@array1 = $zeile =~ /<Komponente id="1234".*</Komponente>/mg ;
Der "." sollte eigtl neue Zeilen mit einschließen und das "/m" über mehrere Zeilen suchen.

Leider funktioniert die Lösung nicht.
Hat jemand einen Vorschlag?