Matti Maekitalo: Mustererkennung in Texten - Textblöcke separieren

Beitrag lesen

use Mosche;

kann mir bitte jemand eine kleine routine zeigen (oder ansatzpunkte), welche mir block für block zur weiterverarbeitung zur verfügung stellt?
wichtig ist, das die leerzeilen sauber erkannt und als trenner benutzt werden.

in den übergebenen blöcken sollen dann allerdings keine leerzeilen mehr sein.

Mein Ansatz geht davon aus, dass ein eintelner Block in drei hintereinander folgenden Zeilen steht (nur zw. den Blöcken Leerzeilen, nicht im Block).
Er macht grundsätzlich folgendes:
er liest aus deinem Array ein.
Wenn er eine Spalte ohne Text erwischt, überspringt er sie.
Ansonsten hat er die erste Zeile.
Dann liest er noch zwei Zeilen ein, und hat damit den kompletten Block. danach gehts weiter.

my @block;
while(defined(my $line = shift @lines)) {
 my %eintrag;
 next if $line =~ m/^\s*$/; # leere Zeilen überspringen
       # Zeilen, die nichts als
       # Leerzeichen und Tabs enthalten

# Wenn wir hier sind, haben wir die Überschrift
 $eintrag{'titel'} = $line;

# das hier musst du machen,
 # wird nen komplizierter regex.
 # ich weiss nicht, nach welchen
 # Kriterien du das ordnen willst.
 my ($land, $jahr, ...) = split(/\s+/, shift @lines);

# jetzt die dritte Zeile (Darsteller)
 $eintrag{'darsteller'} = shift @lines;
}

use Tschoe qw(Matti);