functional style:
use strict;
use warnings;
use Data::Dumper;
use List::Util 'reduce';
my @array = (
'name riya',
'age 34',
'company xxxx',
'name vinoth',
'age 25',
'call 12345678',
'company xxxx',
'address asdd',
'country Ind'
);
my $hashes = reduce {
my ( $key, $val ) = split / /, $b;
push @$a, {} if $key eq 'name';
$a->[-1]{$key} = $val;
$a;
} [], @array;
print Dumper $hashes;
output:
$VAR1 = [
{
'age' => '34',
'company' => 'xxxx',
'name' => 'riya'
},
{
'call' => '12345678',
'address' => 'asdd',
'name' => 'vinoth',
'country' => 'Ind',
'company' => 'xxxx',
'age' => '25'
}
];