# Code readability improvement - phase 1 sub get_data { my $data = shift; my $c = -1; my @AoA; foreach my $infs ( @{$data->{ info }} ) { $c++; my $one_num = $infs->{ $one_num }; my $account_num = $infs->{ $account_num }; my $name = $infs->{ name }; my $new_name = $infs->{ new_name } || ' '; my $plano = $infs->{ plano } || ' '; my $passdate = $infs->{ passdate }; my $todays_date = $infs->{ todays_date }; my $descont = $infs->{ descont }; my $firm = $infs->{ firm }; my $value = $infs->{ value }; my $thetotal = $infs->{ premium }; my $commited = $infs->{ commited }; push @{ $AoA[$c] },$$one_num, $$account_num, $name, $new_name, $plano, $passdate, $todays_date, $descont, $firm, $value, $thetotal, $commited; } #print Dumper \@AoA; return \@AoA; } my $alldata= get_data(); print Dumper $alldata; #### # Code readability improvement - phase 2 sub get_data { my $data = shift; my @AoA; my @keys_that_I_care_about = qw( one_num account_num name new_name plano passdate todays_date descont firm value thetotal commited ); my @keys_that_need_a_default_value = qw( new_name plano ); my $default_value = " "; foreach my $infs ( @{$data->{ info }} ) { my %infs_copy; $infs_copy{$_} = $infs->{$_} for @keys_that_I_care_about; $infs_copy{$_} = $default_value for @keys_that_need_a_default_value; push @AoA, [ @infs_copy{@keys_that_I_care_about} ]; } #print Dumper \@AoA; return \@AoA; } my $alldata= get_data(); print Dumper $alldata;