DEKONSTRUKTIV
Threadersteller
Dabei seit: 22.06.2009
Ort: bln
Alter: -
Geschlecht: -
|
Verfasst Di 02.08.2011 18:31
Titel perl array screwup |
|
|
hallo kids,
ich hab hier ein problem mit perl, bei dem ich mir gerade die karten lege. ich reproduziere das problem mal mit folgenden horstscript:
Code: | #!perl
use Data::Dumper;
my $products=[
{
"CategoryString"=> "bar5787",
"DepartmentKey"=> "skfgjhsfukghsfghfhdghr",
"ProductGroup"=> "group1",
"ProductShortName"=> "s.fjghskfjghksjfhgkjsfhgkjh46tga46u74"
},
{
"CategoryString"=> "bar5787",
"DepartmentKey"=> "skfgjhsfukghsfghfhdghr",
"ProductGroup"=> "group2",
"ProductShortName"=> "s.fjghskfjghksjfhgkjsfhgkjhw4635zwrhw"
},
{
"CategoryString"=> "bar5787",
"DepartmentKey"=> "skfgjhsfukghsfghfhdghr",
"ProductGroup"=> "group3",
"ProductShortName"=> "s.fjghskfjghksjfhgkjsfhgkjhsdtz46zuzhtgdh"
},
{
"CategoryString"=> "bar5787",
"DepartmentKey"=> "skfgjhsfukghsfghfhdghr",
"ProductGroup"=> "group4",
"ProductShortName"=> "s.fjghskfjghksjfhgkjsfhgkjhsagsrtz5zt"
}
];
my %return;
foreach $product (@$products){
my $temp_id= $product->{CategoryString}."_".$product->{DepartmentKey};
%return->{$temp_id}->{Department}= $product->{DepartmentKey};
%return->{$temp_id}->{Category}= $product->{CategoryString};
my @dummy= (%return->{$temp_id}->{Group}) || ();
if(! grep ($_ eq $product->{ProductGroup}, @dummy)){
push(@dummy, $product->{ProductGroup});
}
%return->{$temp_id}->{Group}= \@dummy;
}
@return= values(%return);
print Dumper(\@return); |
das snippet produziert folgenden output:
Code: | $VAR1 = [
{
'Department' => 'skfgjhsfukghsfghfhdghr',
'Category' => 'bar5787',
'Group' => [
[
[
[
'group1'
],
'group2'
],
'group3'
],
'group4'
]
}
]; |
euch wird das verschachtelte array Group als letztes hashelement auffallen. ich hätte das aber gerne dergestalt:
Code: | $VAR1 = [
{
'Department' => 'skfgjhsfukghsfghfhdghr',
'Category' => 'bar5787',
'Group' => [
'group1', 'group2', 'group3', 'group4'
]
}
]; |
ich komm nich dahinter gerade. any hints?
Zuletzt bearbeitet von DEKONSTRUKTIV am Di 02.08.2011 18:33, insgesamt 1-mal bearbeitet
|
|