On 13/05/2011 11:11, Agnello George 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

Hello

Something like the program below perhaps?

HTH,

Rob


use strict;
use warnings;

use Data::Dumper;
$Data::Dumper::Sortkeys = 1;

my $arrayref = [ [
  [ 'user1', 'c' ],
  [ 'user2', 'a' ],
  [ 'user2', 'b' ],
  [ 'user2', 'd' ],
  [ 'user3', 'a' ],
  [ 'user2', 'f' ]
] ];

my %sh;

foreach my $record (@{$arrayref->[0]}) {
  my ($key, $val) = @$record;
  push @{$sh{$key}{group}}, $val;
}

print Data::Dumper->Dump([\%sh], ['*sh']);

**OUTPUT**

%sh = (
        'user1' => {
                     'group' => [
                                  'c'
                                ]
                   },
        'user2' => {
                     'group' => [
                                  'a',
                                  'b',
                                  'd',
                                  'f'
                                ]
                   },
        'user3' => {
                     'group' => [
                                  'a'
                                ]
                   }
      );

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to