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
}