my @ref = map{ ("key$_", "value1_$_", "value2_$_") } 0 .. 9;; my $i=0; $h{shift @$_}=$_ while $i < @ref and $_=[@ref[$i++,$i++,$i++]];; print "$_ => @{$h{ $_ }}" for sort keys %h;; key0 => value1_0 value2_0 key1 => value1_1 value2_1 key2 => value1_2 value2_2 key3 => value1_3 value2_3 key4 => value1_4 value2_4 key5 => value1_5 value2_5 key6 => value1_6 value2_6 key7 => value1_7 value2_7 key8 => value1_8 value2_8 key9 => value1_9 value2_9