in reply to Re^2: Unmatched [ in regex; marked by <-- HERE in m/[ <-- HERE ^]/
in thread Unmatched [ in regex; marked by <-- HERE in m/[ <-- HERE ^]/

As mentioned before, you're invoking the subroutine (it's invoked during  GetOptions() processing) before the array is initialized. Eg.:

c:\@Work\Perl\monks>perl -wMstrict -le "S('before'); ;; my @ra = qw(A C T G); ;; S('after'); ;; sub S { print qq{$_[0] initialization: [@ra] }; } " before initialization: [] after initialization: [A C T G]