The only warning I can give is that using an undef in the list will throw warnings (errors?) in older versions of perl:
my (undef, $foo, undef, $bar) = @array;
Never fear. Just move your my.
(undef, my $foo, undef, my $bar) = @array;
This is particularly more useful in cases where you already have a declared variable.
my $foo = "ab";
(my $avar, $foo) = ($foo =~ /(.)(.)/);
my @a=qw(random brilliant braindead); print $a[rand(@a)];