$VAR1 = { Ad1 => '20 SOUTH CENTRAL #B3', status => 'Property', City => 'NY', zCode => '0002', name => 'John D' }; $VAR1 = { Ad1 => '15 SOUTH CENTRAL #B4', status => 'Property', City => 'NY', zCode => '0002', name => 'John V' }; $VAR1 = { Ad1 => '100 main St.', status => 'houses', City => 'BO', zCode => '0007', name => 'Mary' }; #### #!/usr/bin/perl use warnings; use strict; use Data::Dumper; foreach my $row (@$data) { if ($row->{ 'status' } eq "houses") { my $name = $row->{ 'name' } || ''; my $ad1 = $row->{ 'Ad1' } || ''; my $town = $row->{ 'City' } || ''; my $zcode = $row->{ 'zCode' } || ''; push @{$data}, {new_name => $name, new_ad1 => $ad1, new_City => $town, new_z_code => $zcode}; } } print Dumper @$data; #### $VAR1 = { Ad1 => '20 SOUTH CENTRAL #B3', status => 'Property', City => 'NY', zCode => '0002', name => 'John D', new_Ad1 => '100 main St.', new_status => 'houses', new_City => 'BO', new_zCode => '0007', new_name => 'Mary }; $VAR1 = { Ad1 => '15 SOUTH CENTRAL #B4', status => 'Property', City => 'NY', zCode => '0002', name => 'John V', new_Ad1 => '100 main St.', new_status => 'houses', new_City => 'BO', new_zCode => '0007', new_name => 'Mary }; $VAR1 = { Ad1 => '100 main St.', status => 'houses', City => 'BO', zCode => '0007', name => 'Mary', new_Ad1 => '100 main St.', new_status => 'houses', new_City => 'BO', new_zCode => '0007', new_name => 'Mary };