Schrift
[thread]6005[/thread]

Map bei Hash ?

Leser: 1


<< |< 1 2 >| >> 13 Einträge, 2 Seiten
BrownWolf
 2004-01-08 15:15
#78651 #78651
User since
2003-08-15
308 Artikel
BenutzerIn
[default_avatar]
Hi,

wie funktioniert eigentlich map() bei einem Hash ?
Wenn ich schreibe:

Code: (dl )
1
2
3
keys %hash = map{
$_ = unpack("H*", $_);
} keys %hash;


Dann wird das ignoriert ???
Code (perl): ()
1
2
3
sub _{s;;xrqIpiql\\{}p{pl{R>rl{N{}gjwpkssq]>rl{N;;;*{{}=*{_};;
&#36{{}={q{{{}}}=>[reverse+split+reverse+q;}{;]};&#36{{}->{q{{{}}}}->[@{{}];}
&#36{{}=reverse+_(q{{}}=>q{{}})^chr(30)x+length&_(q{{}}=>,q{{}})and+print;
pq
 2004-01-08 15:48
#78652 #78652
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
wenn du die keys eines hashes verändern willst, musst du den value zwischenspeichern,
den eintrag löschen und mit dem neuen key anlegen.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
format_c
 2004-01-08 16:18
#78653 #78653
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Ergo:
Code: (dl )
1
2
3
4
for (keys %hash) {
$hash{unpack("H*",$_)} = $hash{$_};
delete $hash{$_};
}


Gruß Alex
eisbeer
 2004-01-08 19:56
#78654 #78654
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
So wie ich sehe also garnicht sozusagen ? Zumindest nicht sinnvoll ?
Bzw. ich bekomme halt einen array zurück (key1,val1,key2,val2) ...
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
DS
 2004-01-08 21:07
#78655 #78655
User since
2003-08-04
247 Artikel
BenutzerIn
[default_avatar]
Wie wär's mit:
Code (perl): (dl )
%hash = map { unpack('H*',$_) => $hash{$_} } keys %hash;
Crian
 2004-01-08 22:01
#78656 #78656
User since
2003-08-04
5871 Artikel
ModeratorIn
[Homepage]
user image
[quote=eisbeer,08.01.2004, 18:56]Bzw. ich bekomme halt einen array zurück (key1,val1,key2,val2) ...[/quote]
Code: (dl )
my @array = %hash;


oder ev. auch (ungetestet)

Code: (dl )
@%hash


oder zur Not

Code: (dl )
@{%hash}
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
 2004-01-08 22:15
#78657 #78657
User since
2003-08-04
5871 Artikel
ModeratorIn
[Homepage]
user image
Funktionierendes Beispiel:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/perl
use strict;

use Data::Dumper;

my %hash = (
farbe => 'gelb',
form => 'kreis',
);

my @array = %hash;

print Dumper \%hash;

print Dumper \@array;


Ausgabe:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
$VAR1 = {
'farbe' => 'gelb',
'form' => 'kreis'
};
$VAR1 = [
'farbe',
'gelb',
'form',
'kreis'
];
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
DS
 2004-01-08 22:41
#78658 #78658
User since
2003-08-04
247 Artikel
BenutzerIn
[default_avatar]
[quote=Crian,08.01.2004, 21:01]
Code: (dl )
@%hash


oder zur Not

Code: (dl )
@{%hash}
[/quote]
???

Was soll das werden?

@%hash => syntax error
@{%hash} => ??? (eigentlich Dereferenzierung von %hash im skalaren Kontext, oder?)
Relais
 2004-01-08 23:10
#78659 #78659
User since
2003-08-06
2246 Artikel
ModeratorIn
[Homepage] [default_avatar]
nee, in Listenkontext.
Erst denken, dann posten --
27. Deutscher Perl- u. Raku -Workshop (Termin wird noch gesucht) 2025 in München.

Winter is Coming
Crian
 2004-01-09 10:33
#78660 #78660
User since
2003-08-04
5871 Artikel
ModeratorIn
[Homepage]
user image
siehe funktionierendes Beispiel oben...
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 >| >> 13 Einträge, 2 Seiten



View all threads created 2004-01-08 15:15.