easy: Mehrzeilige Textdatei auslesen und formatiert ausgeben

Beitrag lesen

Hallo Leute!

Ich habe ein Problem mit dem Verarbeiten von XML-ähnlichen Dateien. Unsere interne Datenbank generiert Dateien mit folgendem Inhalt:

|hook base vers="1.0"|
|entries|
 |sel event="5214-5 A25 C" id="d 346735" left="54" base="k"|beliebiger
mehrzeiliger
Beschreibungstext|/sel|
 |sel event="5285-4 A26 C" id="d 543643" left="2" base="l"|beliebiger

mehrzeiliger

Beschreibungstext|/sel|
...
|/entries|

Meine Aufgabe ist es nun, ohne diese Dateien zu verändern, ein passendes Verarbeitungsskript in Perl zu schreiben, um die Daten in den Files im Web formatiert sichtbar zu machen. Also habe ich mal etwas rumexperimentiert, allerdings keine richtige Lösung gefunden.

hier mein Ansatz in Perl:

open(QUELLE,"<back2648.dat") || die "Quelle nicht gefunden";
while(<QUELLE>){
    $in = $_;
    unless(lc($in) eq "|entries|" or lc($in) eq "|/entries|" or lc($in) eq '|hook base vers="1.0"|'){
      my $sub = $in =~ /event="(.+?)"/;
      $dat[$count][0] = $1;
      my $sub = $in =~ /id="(.+?)"/;
      $dat[$count][1] = $1;
      my $sub = $in =~ /left="(.+?)"/;
      $dat[$count][2] = $1;
      my $sub = $in =~ /base="(.+?)"/;
      $dat[$count][3] = $1;
      my $sub = $in =~ /|sel(.+?)|/sel|/;
      $dat[$count][4] = $1;
      $count++;
    }
}
close(QUELLE);

Ihr seht also, daß ich versucht habe, die beliebigen Zeichen im Eintrag |sel event...| auszulesen und in ein Array zu kopieren. Den Text zwischen |sel... und |/sel| ebenfalls. Ich habe nun überlegt, daß es nicht funzt, weil mit der while-funktion ja jede Zeile der <QUELLE> einzeln durchlaufen und somit nix gefunden wird. Aber wie kann ich es anders lösen?

Bin für jede Hilfestellung dankbar!

Ciao