in reply to Using constants. What am I doing wrong?

As with all "use" directives, defining a constant happens at compile time, before the code is run. At compile time, $Base has no value. That is why this works:
#!/usr/bin/perl -w use strict; use constant BASE => 'mybase'; print "BASE: ", BASE, "\n";
and your code does not.

Update: If you want to set a 'symbolic constant' to a variable, you could use a variable and stick to the convetion that all caps means constant:

!/usr/bin/perl -w use strict; my $BASE = 'mybase'; print "BASE: $BASE\n";
This also has the advantage of allowing variable interpolation.

-Mark