Starter: Zeile zurückspringen

Hi zusammen,

ich hab folgende datei ( - = Leerzeichen):

------x
--------x
--------z
--------a
------1
--------1
--------2
------t
--------t
------4
--------4

Jedesmal wenn quasi 6 Leerzeichen kommen, dann
beginnt für mich ein neuer Abschnitt, denn ich bearbeiten will.

Ich hab das wie folt versucht:

#!/usr/bin/perl
use strict;

while(defined(my $i = <FILE>))
{
if ($i =~ /^\s{6}\w+/)
        {
        my $a=<FILE>;
        #print "1- $i \n";
        until ($a =~ /^\s{6}\w+/)
                {
                print "process $a";
                $a=<FILE>;
                }
        print "\n";
        }
}
close(FILE);

Problem ist jetzt natürlich, dass ich nur jeden zweiten Abschnitt erwische (also in dem Beispiel oben x und t, aber nicht 1 und 4),
da ich ja mit $a=<FILE> am Ende der until-Schleife den Filepointer eins vorgesetzt habe. Hat jemand eine Idee, wie ich den wieder zurücksetzten kann bzw. eine allgemein bessere Lösung für meine Aufgabe?

Danke.

ciao,
Starter

  1. Hat jemand eine Idee, wie ich den wieder zurücksetzten kann bzw. eine allgemein bessere Lösung für meine Aufgabe?

    So sollte es gehen:

    while(<FILE>) {  
      if(/^\s{6}\w+/) {  
        print 'Section: ', $_, "\n";  
      }  
      else {  
        print 'Process: ', $_, "\n";  
      }  
    }
    

    Siechfred

    --
    Wir vom Moderatorenteam haben keinerlei Humor, von dem wir wüssten.