Thread Länge eines Arrays im Hash: herausfinden (22 answers)
Opened by pktm at 2003-11-19 22:13

pktm
 2003-11-19 23:34
#72195 #72195
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Also ich benutze das um die Zeilen eines Codesegments in einer Datei festzustellen, damit ich die später überschreiben kann.

Die Werte füge ich so hinzu:
push @{ $navs{$navcnt} }, $cnt;
Ausgabe mit Dumper:
$VAR1 = '1'; $VAR2 = [ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88 ]; $VAR3 = '2'; $VAR4 = [ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135 ];
mfg pktm

PS: wens interssiert:
Ich habe eine html-Datei in der es mehrere Navigationsleisten geben kann.
Diese ist Bestandteil eines CMS und sollte dann entsprechend geändert werden, wenn der Benutzer dem CMS Seiten hinzufügt oder entfernt.
Ich muss also die Navigation auslesen, löschen und die neue Ainfügen.
Dazu muss ich wissen, wo sich die aktuellen Navs befinden (es kann mehrere geben, horizontal & vertikal, z. B. links und unten).
D.h. ich durchlaufe die Seite so:
Code: (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
    my $vPattern = '<!-- navigation_vertikal --><!-- diese Kommentare nicht entfernen! -->';
my $hPattern = '<!-- nav_h --><!-- diese Kommentare nicht entfernen! -->';
my $vPatternEnde = '<!-- /navigation_vertikal --><!-- diese Kommentare nicht entfernen! -->';
my $hPatternEnde = '<!-- /nav_h --><!-- diese Kommentare nicht entfernen! -->';

my @template = extractFile( $main_template );
my $flag = 0; # 0 = init, 1 = vfound, 2 = hfound,
my %navs = ();
my $navcnt = 0;
for my $cnt ( 0 .. $#template ) {
if( $template[$cnt] =~ m/$vPattern/ig or $flag == 1) {
print "v-fopund!<br />\n" if $flag == 0;
$navcnt++ if $flag == 0;
$flag = 1;
push @{ $navs{$navcnt} }, $cnt;
if( $template[$cnt] =~ m/$vPatternEnde/ig ) {
$flag = 0;
print "v-found-ende<br />\n";
}
}
if( $template[$cnt] =~ m/$hPattern/ig or $flag == 2) {
print "h-found!<br 7>\n" if $flag == 0;
$navcnt++ if $flag == 0;
$flag = 2;
push @{ $navs{$navcnt} }, $cnt;
if( $template[$cnt] =~ m/$hPatternEnde/ig ) {
$flag = 0;
print "h-found-ende<br />\n";
}
}
} # for my $cnt ( 0 .. $#template ){}
print Dumper( %navs );
http://www.intergastro-service.de (mein erstes CMS :) )

View full thread Länge eines Arrays im Hash: herausfinden