in reply to why doesn't constant work?

People referred to it, but didn't explicitly state ... The way use constant works is it creates a subroutine which takes no arguments for your symbolic name, for example 'Page'. It's exactly the same as if you had:

sub Page() { return 1; }

That works as far as preventing the value of Page from being altered, but it doesn't interpolate anywhere, because interpolation happens with variables, not barewords. As already mentioned, that's why Readonly has become the preferred method:

use Readonly; Readonly my $Page => 1;

That will interpolate the value wherever needed.

By the way, good style generally calls for ALL CAPS for global variables and constants. The reason is it stands out as a sin you've committed, motivating programmers to minimize the use to things that actually need it.

As Occam said: Entia non sunt multiplicanda praeter necessitatem.