It's only a warning. You can suppress it with no warnings
{
no warnings;
use constant TEST => 2;
}
Update: Dang. That no warnings bit was all wrong, as noted by K_M_McMahon++. The worst of it is that I had even run the test
% perl -Mstrict -wle 'use constant x => 1; { no warnings; use constant
+ x => 4; } print x'
Constant subroutine main::x redefined at /opt/lib/perl5/5.8.3/constant
+.pm line 108.
4
but only paid attention to the fact that the last print out was correct, and completely ignored the fact that I was still getting a warning. Sheesh.