my %gp = ( ... Gi => \@gi, # an array ref Gt => \@gt, ); #### ... $j = $gp{$i}; my @values; if (ref $j eq 'ARRAY'){ @values = @{$gp{$i}}; } else { @values = ($j); } for $val (@values){ ...