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;