Nothing's intrinsically wrong with it, so far as that goes. However, what ends up happening is that you have a global variable in one place. This
could lead to a slippery slope. I'm not saying that someone of your experience will do so, but it could very well happen.
Instead of that syntax, I would recommend one of the following:
package MyClass;
@ISA = qw(Whatever);
use strict;
-----
use strict;
use vars '@ISA';
package MyClass;
@ISA = qw(Whatever);
-----
use strict;
use 5.6.0;
package MyClass;
our @ISA = qw(Whatever);
The first two still use globals, and are for pre-5.6.0 or before. If you require that 5.6.0 or higher be used, there's absolutely not reason not to use
our. None.