Leser: 28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my $reihe_ref = [ 'A', 'B', 'C', 'D', 'E' ];
# Teilstück nach Dereferenzierung
my @die_ersten_drei = @{$reihe_ref}[0 .. 2];
print Dumper( \@die_ersten_drei );
# das liefert eine Warnung und das erste Element
my @die_letzten_drei = $reihe_ref->[2 .. 4];
print Dumper( \@die_letzten_drei );
%hash = map (s/\s//g, $_->[1]{item1} => $_->[1]{item2})@{$ref->{array}};
2011-03-03T20:28:09 sureshWichtig war mir bei meiner Frage, dass es um ein anonymous array geht.
Genauergesagt um ein anonymous array gefüllt mit hashes.
Was ich erreichen möchte ist folgendes:
- auf bestimme Key/Values (item1, item2) aller hashes in dem array mit einer Anweisung zugreifen und dies dann in einem neuem hash abspeichern
my %hash = map {$_->{item1} => $_->{item2}} @{$_};
1 2 3
my %hash = ($_->[0]{item1} => $_->[0]{item2}, $_->[1]{item1} => $_->[1]{item2}, ...);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[
{
ID1.1 => Wert1.1
ID2.1 => Wert2.1
ID3.1 => Wert3.1
};
{
ID1.2 => Wert1.2
ID2.2 => Wert2.2
ID3.2 => Wert3.2
};
{
ID1.3 => Wert1.3
ID2.3 => Wert2.3
ID3.3 => Wert3.3
};
];
1 2 3 4 5 6 7 8 9
my %hash; for my $item (@$list_of_hashes) { for my $key (keys %$item) { if ($key =~ m/^ID2\./) { $hash{ $key } = $item->{ $key }; last; } } }
1
2
3
for my $list (@array) {
my %hash = map { s/\s//g; $_->{ID2} => $_->{ID3} } @{ $list };
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@array= [
{
ID1 => Wert1.1
ID2 => Wert1.2
ID3 => Wert1.3
};
{
ID1 => Wert2.1
ID2 => Wert2.2
ID3 => Wert2.3
};
{
ID1 => Wert3.1
ID2 => Wert3.2
ID3 => Wert3.3
};
];
2011-03-07T07:18:30 sureshIch bin mir immernoch nicht sicher wie man diese Struktur beschreibt. Vielleicht als ein array of array of hashes.