Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]5919[/thread]

Hash dereferenzieren

Leser: 5


<< >> 10 Einträge, 1 Seite
SirLant
 2003-11-23 17:02
#72565 #72565
User since
2003-08-04
516 Artikel
BenutzerIn
[default_avatar]
Meine Perl-Kentnisse sind ziemlich eingestaubt ,wie kann ich
folgenden Hash dereferenzieren:
%navi = ( "Java" => {"Switch" => "switch.htm", "Bubble" => "Bubble.htm"});

Brauche 1mal den ersten Key (Java) dann der Reihe nach die
Keys und Values aus dem anonymen Hash

Das ganze in ner Schleife, da Java hier eine Überschrit darstellt
und der anonyme hash die Liste aus Namen und Adressen.

Mein bisheriger Ansatz:
Code: (dl )
1
2
3
4
5
6
	for (keys %navi) {
$navigation .= strong ($_);
for (keys %{$_}) {
$navigation .= br (). br (). a ({-href => Adresse}, "Name);
}
}


Wie muss ich auf Name und Adresse dereferenzieren?
--Programming today is a race between Software Enginers striving to build bigger and better idiot-proof Programs,
and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
SirLant
 2003-11-23 17:17
#72566 #72566
User since
2003-08-04
516 Artikel
BenutzerIn
[default_avatar]
Die Datenstruktur wurde so eben um ne Ebene
erweitert :D
Ich brauche ja noch nen alt-text für die Links :blush:
%navi = ( "Java" => {"Switch" => ["Switch","switch.htm"], "Bubble" => ["Bubblesort","Bubble.htm"]});

Und folgende Zeile wird zu:
$navigation .= br (). br (). a ({-href => Adresse, -alt => Alt}, "Name");

Aber ich selber bekomm es absolut nicht
mehr hin habe auch keine Beispiele mehr
wo ich schauen könnte :(\n\n

<!--EDIT|SirLant|1069600811-->
--Programming today is a race between Software Enginers striving to build bigger and better idiot-proof Programs,
and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
Crian
 2003-11-23 17:44
#72567 #72567
User since
2003-08-04
5867 Artikel
ModeratorIn
[Homepage]
user image
kein Problem, antwort kommt gleich ...
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
format_c
 2003-11-23 17:49
#72568 #72568
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Hier mal ein Ansatz:
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
#!c:/perl/bin/perl.exe
use strict;
use warnings;
use Data::Dumper;
use CGI qw/:all start_ul/;
my %navi = ( "Java" => {
"Switch" => ["Switch","switch.htm"],
"Bubble" => ["Bubblesort","Bubble.htm"]
},
"Andere" => {
"Switch" => ["Switch","switch.htm"],
"Bubble" => ["Bubblesort","Bubble.htm"]
}
);
my $navigation = '';
for my $key (sort keys %navi) {
$navigation .= h4($key) . start_ul . "\n";
for (sort keys %{$navi{$key}}) {
$navigation .= a({-href=>$navi{$key}{$_}[1],-alt=>$navi{$key}{$_}[0]},$_) . "\n";
}
$navigation .= end_ul . "\n";
}
print $navigation;
_ _ END _ _
<h4>Andere</h4><ul>
<a href="Bubble.htm" alt="Bubblesort">Bubble</a>
<a href="switch.htm" alt="Switch">Switch</a>
</ul>
<h4>Java</h4><ul>
<a href="Bubble.htm" alt="Bubblesort">Bubble</a>
<a href="switch.htm" alt="Switch">Switch</a>
</ul>


Was du mit dem alt-Attribut in einem normalen Link machen willst ist mir zwar schleierhaft, aber bitte.

Gruß Alex\n\n

<!--EDIT|format_c|1069602730-->
Crian
 2003-11-23 17:55
#72569 #72569
User since
2003-08-04
5867 Artikel
ModeratorIn
[Homepage]
user image
Hier:

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
#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;
use Data::Dumper;

my %navi = (
"Java" => {
"Switch" => ["Switch","switch.htm"],
"Bubble" => ["Bubblesort","Bubble.htm"],
},
"Dings" => {
"Urgs" => ["Urgelurgs","uuuuuurgllll.htm"],
"Gnubbel" => ["Gubblesort","Gnubbel.htm"],
},
);

for my $key (sort keys %navi) {
print "Key '$key'\n";
for my $innerkey (sort keys %{$navi{$key}}) {
print "\tInner Key: '$innerkey'\n";
for my $value (@{$navi{$key}{$innerkey}}) {
print "\t\t\tWert = '$value'\n";
}
}
}


Ausgabe:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Key 'Dings'
Inner Key: 'Gnubbel'
Wert = 'Gubblesort'
Wert = 'Gnubbel.htm'
Inner Key: 'Urgs'
Wert = 'Urgelurgs'
Wert = 'uuuuuurgllll.htm'
Key 'Java'
Inner Key: 'Bubble'
Wert = 'Bubblesort'
Wert = 'Bubble.htm'
Inner Key: 'Switch'
Wert = 'Switch'
Wert = 'switch.htm'
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
SirLant
 2003-11-23 18:17
#72570 #72570
User since
2003-08-04
516 Artikel
BenutzerIn
[default_avatar]
Der alt-tag wird doch angezeigt wenn man
länger mit der Maus über dem Link bleibt oder irre
ich mich da gerade?
--Programming today is a race between Software Enginers striving to build bigger and better idiot-proof Programs,
and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
SirLant
 2003-11-23 18:31
#72571 #72571
User since
2003-08-04
516 Artikel
BenutzerIn
[default_avatar]
habe jetzt wieder die Struktur von oben
verwendet und es jetzt so gelöst:
for my $key (keys %navi) {
$navigation .= strong($key) . br ();
for (keys %{$navi{$key}}) {
$navigation .= br ().a({-href=>$navi{$key}{$_}},$_);
}
}

Danke für eure Hilfe :)
--Programming today is a race between Software Enginers striving to build bigger and better idiot-proof Programs,
and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
format_c
 2003-11-23 19:27
#72572 #72572
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
IMHO bringt das alt- Attribut nur bei images etwas.
Gruß Alex
Crian
 2003-11-24 10:45
#72573 #72573
User since
2003-08-04
5867 Artikel
ModeratorIn
[Homepage]
user image
Aber da bringts viel ... für Leute mit Textbrowsern, oder etwa mit Browsern für sehbehinderte, die die Texte vorlesen...
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Strat
 2003-11-24 18:38
#72574 #72574
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
heisst der "alt"-Tag bei Links nicht title?
<a href="xyz." title="Link nach xyz">...</a>
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 10 Einträge, 1 Seite



View all threads created 2003-11-23 17:02.