Schrift
[thread]5844[/thread]

Arrays nach Hash: keine Peilung (Seite 3)



<< |< 1 2 3 4 5 >| >> 48 Einträge, 5 Seiten
format_c
 2003-10-22 14:44
#66446 #66446
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=-Sven-,22.10.2003, 12:14]Noch ne kleine Zusatzfrage:

wie kann ich vor 'web' 'google' 'gmx' und den anderen werten die Keys wieder setzen.

Aber ansonsten ist das genau die geile Struktur die ich brauch.[/quote]
Äh wie meinen?

Gruß alex
-Sven-
 2003-10-22 14:59
#66447 #66447
User since
2003-10-15
25 Artikel
BenutzerIn
[default_avatar]
so inetwa

$VAR1 = {
server => 'web' => {
folder=> 'mail' => [
file=> 'test'
]
},
'google' => {
'test' => [
'login'
],
'start' => [
'index',
'start'
]
},
'gmx' => {
'sms' => [
'send'
]
}
};
format_c
 2003-10-22 15:06
#66448 #66448
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
So?
Mal ne Frage nebenbei. Hat das zufällig was mit XML::Simple zu tun?
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
use strict;
my $name = 'Server';
my @Server = qw(google google google web gmx );
my @Pfad = qw(start start test mail sms );
my @Datei = qw(index start login test send);

my $l = scalar @Server;

die "unterschiedlich große Arrays" if $l != scalar @Server or
$l != scalar @Pfad or
$l != scalar @Datei ;


my %Hash = ();

for my $index (0..$l-1) {
# äußeren Hash-Schlüssel anlegen, Wert ist leeres anonymes Hash:
$Hash{$name}{$Server[$index]} = {};
# Pfad als Schlüssel eintragen und leeres anonymes Array als Wert:
$Hash{$name}{$Server[$index]}->{$Pfad[$index]} = [];
}

# inneres Array füllen:
for my $index (0..$l-1) {
push @{ $Hash{$name}{$Server[$index]}->{$Pfad[$index]} }, $Datei[$index];
}

use Data::Dumper;

print Dumper \%Hash;
-Sven-
 2003-10-22 15:09
#66449 #66449
User since
2003-10-15
25 Artikel
BenutzerIn
[default_avatar]
nee

ich brauch nur ein einziges hash, dann wird von einen anderen programm ein verzeichnisbaum erstellt
format_c
 2003-10-22 15:18
#66450 #66450
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Ist das jetzt das was du haben wolltest:
$VAR1 = {
'Server' => {
'web' => {
'mail' => [
'test'
]
},
'google' => {
'test' => [
'login'
],
'start' => [
'index',
'start'
]
},
'gmx' => {
'sms' => [
'send'
]
}
}
};


Gruß Alex
-Sven-
 2003-10-22 15:28
#66451 #66451
User since
2003-10-15
25 Artikel
BenutzerIn
[default_avatar]
Jo stimmt.

Also nochmal an alle.

Vielen Dank,dass ihr mir geholfen habt, ist echt cool von euch.

Macht weiter so.
Crian
 2003-10-22 15:53
#66452 #66452
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
@Sven: Schreib bitte den genauen Zielwunsch auf (wie die Datenstruktur nachher aussehen soll), Dein letzter Beitrag war uneindeutig, da sich der erste Fall von den anderen Unterschied.

@Alex: Ich tippe mal darauf, dass er

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(
server => {
web => {
folder => {
mail' => [ 'test' ]
}
},
google => {
folder => {
test => [ 'login' ],
start => [ 'index', 'start' ]
}
},
gmx => {
folder => {
sms => [ 'send' ]
}
}
}
)


haben möchte, bin aber nicht 100%ig sicher und liefere weitere Programme nur, wenn ich sicher bin ;-)
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
Crian
 2003-10-22 15:55
#66453 #66453
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
[quote=-Sven-,22.10.2003, 13:28]Jo stimmt.[/quote]
Also doch ohne den folder-Einschub? Bitte sorgfältig lesen und genau antworten.
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
-Sven-
 2003-10-22 16:14
#66454 #66454
User since
2003-10-15
25 Artikel
BenutzerIn
[default_avatar]
Das letzte von Crian gefällt mir besser.

Sorry hab vor Freude gar nicht gemerkt das das andere nicht stimmt.
Crian
 2003-10-22 16:16
#66455 #66455
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Besser? Ist das genau das was Du willst? Naja ich bau mal den Code dazu passend um... :-)
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
<< |< 1 2 3 4 5 >| >> 48 Einträge, 5 Seiten



View all threads created 2003-10-22 11:20.