foreach my $key (keys %points_by_name) { foreach (@{$points_by_name{$key}} { for (my $i=0; $i<=$#{$points_by_name{$key}} $i+=2) { sub(@{$points_by_name{$key}}[$i..$i+3], $x2, $y2, $x3, $y3) } } }