in reply to Loops and my

Can I undef ($v1, $v2, $vX); or does this only affect the first value in the array?
If it's an array, then you can just do @array = (); to undefine it. If they're really scalars, then you can shortcut it a little bit with $v1 = $v2 = $vX = undef;

Example:

#!/usr/bin/perl -w use strict; print "\nWith scalars..\n"; my ($var1, $var2, $var3) = (1, 2, 3); foreach( $var1, $var2, $var3 ){ print "$_, "; } print "\nundef them...\n"; $var1 = $var2 = $var3 = undef; foreach( $var1, $var2, $var3 ){ print "$_, "; # -w will complain about this. } print "\nWith an array..\n"; my @stuff = qw(a b c); foreach( @stuff ){ print "$_, "; } print "\nundef it...\n"; @stuff = (); foreach( @stuff ){ print "$_, "; # -w won't complain about this, because # @stuff is empty, so this line does not # execute }