Thread In anonymes Hash umwandeln (9 answers)
Opened by J-jayz-Z at 2005-11-15 21:03

J-jayz-Z
 2005-11-15 21:03
#60185 #60185
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hi,
Ich hab da ein Problem. Und zwar will ich etwas in der Form X/Y/Z in ein Hash mit den Indexen ->{X}->{Y}->{Z} umwandeln.
Das Dabei ->{X}->{Y} verloren geht ist mir klar und auch in Ordnung. Mein 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
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;

my $foo = &splitme("foo/lol" => "blub","foo/lol/bla" => "grml");

print Dumper($foo);

sub splitme {
my %hash = @_;
my $return;

foreach my $element(keys %hash) {
my @split=split(/\//,$element);

my $last = { };
$return = $last;

foreach my $i (0..$#split){
my $part = $split[$i];
if ($i == $#split){
$last->{$part} = $hash{$element};
}else{
$last->{$part} = { };
}
$last = $last->{$part};
}

}
return $return;
}

Kann mir da jemand helfen ?
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de

View full thread In anonymes Hash umwandeln