Jim, > qq:i {} is just like qq{} except that when it interpolates variables, > those which are undefined are preserved literally.
I think surprise might be a problem. E.g. my $index = 0; eval qq:i { my @array = A .. Z; sub example { for my $index (0 .. $#array) { #stuff } } } Common variable names like $i, $index, $element etc might end up being replaced by mistake in the qq:i {}. Can't see it being acceptable in strict code. Interesting idea except for the flaw. Jonathan Paton