my %tmp; @tmp{@transferInfos} = (split /,/, $_)[3,4,5,12,14,16,18,19]; push @array, \%tmp;