It might not look nice but I would do the following: #!/usr/local/bin/perl
use strict; use warnings; my $arrayref = [ [ [ 'user1', 'c'], [ 'user2', 'a'], [ 'user2', 'b' ],[ 'user2', 'd' ],[ 'user3', 'a' ],[ 'user2', 'f' ] ] ]; my %hash; foreach my $arrayreference ( @{${$arrayref}[0]} ) { if ( ! defined $hash{${$arrayreference}[0]} ) { $hash{${$arrayreference}[0]} = { group => [ ${$arrayreference}[1] ] }; } else { push @{${$hash{${$arrayreference}[0]}}{group}}, ${$arrayreference}[1]; } } use Data::Dumper; print Dumper %hash; It prints: $ perl test.pl $VAR1 = 'user1'; $VAR2 = { 'group' => [ 'c' ] }; $VAR3 = 'user3'; $VAR4 = { 'group' => [ 'a' ] }; $VAR5 = 'user2'; $VAR6 = { 'group' => [ 'a', 'b', 'd', 'f' ] }; Which is I believe what you are after right? Regards, Rob On Fri, May 13, 2011 at 12:11 PM, Agnello George <agnello.dso...@gmail.com>wrote: > Hi All > > I have a small issue in arranging data with a array ref . > > $arrayref = [ [ [ 'user1, 'c'], [ 'user2', 'a'], [ 'user2', 'b' ],[ > 'user2', 'd' ],[ 'user3', 'a' ],[ 'user2', 'f' ] ] ]; > > > i tried the following > > my %sh ; > > foreach my $i ( @$arrayref) { > push (@{$sh{$i->[0]}},{group => [$i->[1] } ); > } > > > required hash > > %sh = ( user1 => { group => [ c ] }, > > user2 => { group => [ a b d f] }, > > user3 => { group => [ a ] } > ) > > > > but i am not able to get it in this format . > > Can some one please help me out > > Thanks a lot > > > -- > Regards > Agnello D'souza > > -- > To unsubscribe, e-mail: beginners-unsubscr...@perl.org > For additional commands, e-mail: beginners-h...@perl.org > http://learn.perl.org/ > > >