$, = " "; # just playing with the =>'s my @gn_score = ( [ name_0 => score_0 => ], [ name_1 => score_1 => ], [ name_2 => score_2 => ], ); my @gn_start_stop_chr = ( [ name_0 => b_0 => e_0 => ], [ name_1 => b_1 => e_1 => ], [ name_2 => b_2 => e_2 => ], [ name_0 => b_30 => e_3 => ], [ name_2 => b_42=> e_4 => ], [ name_1 => b_51=> e_5 => ], ); my %score; $score{$_->[0]} = $_->[1] for (@gn_score ); for ( @gn_start_stop_chr) { my ( $name => $begin => $end => ) = @$_; die unless exists $score{$name}; print $name, # or stash your data somewhere $score{$name}, $begin, $end, $/; };