vinoth.ree has asked for the wisdom of the Perl Monks concerning the following question:
Hi Monks
use strict; use warnings; use Data::Dumper; sub get_user_details { my @temp; my %user_details; while (@temp = getpwent()) { $user_details{$temp[0]} = [@temp] ; } return \%user_details; } my $hash_ref = get_user_details(); print Dumper $hash_ref;
In the above code am trying to get the user details into the %user_details hash, the keys will be the user name and value will be in the array, For Ex.
I thought to save the array as array reference, for each users, So I tried to take the array reference with \ (backslash), this is the normal method I use to take reference to a array. Ex:'hema' => [ 'hema', 'x', 1000, 1000, '', '', 'Hema,,,', '/home/hema', '/bin/bash' ],
But this method does not worked for me.use strict; use warnings; use Data::Dumper; sub return_arr_ref { my @array = (1,2,3,4,5,6,7); return \@array; } my $array_ref = return_arr_ref(); print Dumper $array_ref;
I tried the another method to take reference to an array as [], it works fine for me, Now its confusing me.
Which method I need to use always to take reference to an array ?
Notice:When I use my inside that while loop like while (my @temp = getpwent())) that \ method of taking reference works fine.
Update:updated the code, changed $arr_ref to $hash_ref, as point out by muba
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Best way to take reference to an array \ or []
by tobyink (Canon) on Jan 22, 2013 at 11:35 UTC | |
by vinoth.ree (Monsignor) on Jan 22, 2013 at 12:33 UTC | |
by muba (Priest) on Jan 22, 2013 at 12:35 UTC | |
by vinoth.ree (Monsignor) on Jan 22, 2013 at 12:46 UTC |
Back to
Seekers of Perl Wisdom