Thread Hash nach HTML mit Modul? (16 answers)
Opened by Neyt at 2013-03-22 10:12

Neyt
 2013-03-27 08:07
#166656 #166656
User since
2013-03-14
13 Artikel
BenutzerIn
[default_avatar]
Also ich habe den Hash hier:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
$VAR1 = {'Klasse' => {'Klasseninfo' => {'Anzahl' => '29',
'Klassenname' => 'asdf 13'
}
'?' => {'Klasse/Klassenbuch/Eintrag' => {'Alter Eintrag' => 'Fehltag',
'Neuer Eintrag' => 'Fehlzeit'
}},
'+' => {'Klasse/Klassenbuch/Eintrag' => {'Neuer Eintrag' => 'Fehlstunde'}
}
}
}


Der Hash wird über diesen Code zusammengebastelt:
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# Hash
my %hash4html = ();

foreach my $key (keys (% {$hash}))
{
### Hash für Info
$hash4html{$key}{'Info'} = {% {$hash->{$key}->{'Info'}}};

foreach my $key2 (keys (% {$hash->{$key}->{'Info'}}))
{
foreach my $key2 (keys (% {$hash->{$key}->{Unterschied}}))
{
# Abfrage ob der Wert des Keys gleich '???' ist
if($hash->{$key}->{'Unterschied'}->{$key2} eq '???')
{
# neu;
my (undef,@array_fragezeichen) = split('/', $key2);
unshift(@array_fragezeichen,'new');
my $neu = Dive( $hash->{$key},@array_fragezeichen);

### Hash für neu
$hash4html{$key}{'???'}{$key2}{neu} =$neu;

# alt
(undef, @array_fragezeichen) = split('/', $key2);
unshift(@array_fragezeichen, 'old');
my $alt = Dive( $hash->{$key}, @array_fragezeichen);

### Hash für alt
$hash4html{$key}{'???'}{$key2}{alt} =$alt;
}

# Abfrage ob der Wert des Keys gleich '+++' ist
elsif ($hash->{ $key }->{ 'Unterschied' }->{$key2} eq '+++')
{
# plus_neu
my (undef, @array_plus) = split('/', $key2);
unshift(@array_plus,'new');
my $plus_neu = Dive( $hash->{$key},@array_plus);
### Hash für neu
$hash4html{$key}{'+++'}{$key2}{neu} =$plus_neu;
}

# Abfrage ob der Wert des Keys gleich '---' ist
elsif ($hash->{ $key }->{ 'Unterschied' }->{$key2} eq '---')
{
# minus_alt
my (undef, @array_minus) = split('/', $key2);
unshift(@array_minus,'old');
my $minus_alt = Dive( $hash->{$key}, @array_minus);
### Hash für alt
$hash4html{$key}{'---'}{$key2}{alt} =$minus_alt;
}
}
}
}


Diesen Hash will ich jetzt durchlaufen (am besten mit ner eigenen Funktion) und jeden Key und Wert per print mit htmlquotes ausgeben.
Sprich die Ausgabe kann z.b. so aussehen (mit htmlquotes):

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
<h1>Klasse</h1>
<h2>Klasseninfo</h2>
<p>Anzahl: 29</p>
<p>Klassenname: asdf</p>

<p>?</p>
<p>Alter Eintrag: Fehltag</p>
<p>Neuer Eintrag: Fehlzeit</p>

<p>+</p>
<p>Neuer Eintrag: Fehlstunde</p>


modedit Editiert von pq: code-tags hinzugefügt
Last edited: 2013-03-27 11:26:51 +0100 (CET)

View full thread Hash nach HTML mit Modul?