Thread Probleme mit Ausdrücken (21 answers)
Opened by Trommelwirbel at 2011-11-10 17:05

Linuxer
 2011-11-14 13:50
#154186 #154186
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Was ist $element? Wie wird die Variable gefüllt?

Kannst Du mal ein minimales lauffähiges Beispiel inklusive Beispieldaten liefern?
Damit ließe sich das Problem besser nachvollziehen...
So ganz verstehe ich Dein Problem derzeit nicht.


Hier nochmal mein Code mit Kommentaren:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#! /usr/bin/perl
use strict;                  # grosse Hilfe; immer einschalten
use warnings;                # wenigstens beim Entwickeln einschalten; auch grosse Hilfe

my $num = 0;                 # Zaehler, wie viele Zeilen gelesen werden sollen

# zeilenweise vom Handle DATA lesen; alternativ eben ein Handle einer selbst geoeffneten Datei
while ( my $line = <DATA> ) {

    # wenn keine Zeile mehr zu lesen ist und die aktuelle Zeile
    # einen String enthaelt, der lesenswerte Zeilen definiert, dann
    # uebernehme die Anzahl der zu lesenden Zeilen nach $num
    # !!! wenn $num noch nicht 0 ist, dann wird eine Zeile mit einem
    # neuen "LESE xy" ausgegeben und nicht ausgewertet!!!
    if ( $num == 0 && $line =~ m/LESE (\d+)/ ) {
        $num = $1;
    }
    # wenn noch Zeilen zu lesen sind
    elsif ( $num > 0 ) {
        # gebe die aktuelle Zeile aus
        print $line;
        # und reduziere den Zaehler um eins
        $num--;
    }

    # weiter mit naechster Zeile
}

# DATA Sektion kann entfallen, wenn eigene Datendateien verwenden werden
# und nicht vom Handle DATA gelesen wird
__DATA__
LESE 3
a1
a2
a3
LESE 2
b1
b2
LESE 2
c1
c2
LESE 4
d1
d2
d3 LESE 3   # ich werde ausgegeben
d4
d5
d6
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Probleme mit Ausdrücken