#!/usr/bin/perl use strict; use warnings; local $/ = "====> ";                                      # Datensatzende ist "====>" my @ind = (4, 8, 22, 29, 34, 36, 38, 40, 42,               44, 46, 48, 50, 52, 55, 63, 65, 71,               73, 75, 77, 85, 87, 92, 94, 99, 101,              106, 108, 113, 115, 120, 122);              # Indice der Längenfelder für VarStrings my $filename = shift or die "Kein Dateiname angegeben!"; open XY, "<$filename" or die "Konnte Datei $filename nicht oeffnen!"; while () {    my $line = $_;    if ($. == 1) {        die "Datei $filename ist scheinbar kein OVO-Historyfile!" unless ($line =~ "Version 3");        next;    };    my $i = 0;    my $pnt = 0;    my @parts;    while (length($line) > 0) {        $line =~ s/([^ ]+) //; my $part = $1;        push @parts, $part;        next if ($pnt > $#ind);        if ($i == $ind[$pnt]) { print "Gotcha! $i - ";            $line =~ s/(.{0,$part}) //s; my $varstr = $1; print "$varstr\n";            push @parts, $varstr;            $pnt++; $i++;        }    } continue {        $i++;    }    for ($i=0; $i<=$#parts; $i++) { print "Element $i: $parts[$i]\n"; }    print "\n"; } close XY;