in reply to declaring same variable

Just move the variable declaration above the first if modifier e.g
my @xxx; @xxx = (one, two, three) if ( $op eq "numbers" ); @xxx = (four, five) if ( $op eq "alpha" ); @xxx = (six, ten) if ( $op eq "alp" );
You'll no longer get the warning as you won't be declaring the @xxx multiple times (as lexicals are declared at compile-time (i.e when it's putting the program together)).
HTH

_________
broquaint