my %out = map { $ref[$_] => [ @ref[$_+1..$_+2] ] } grep { not $_ % 3 } 0 .. $#ref;