If you really, really need to, you can still force "const correctness", but like using closures to force total object data encapsulation, it takes extra effort for both the programmer and Perl.
sub inc {
$_[0]++
}
my ($i,$j) = (0,0);
inc(@{[$i]});
inc($j);
print"$i $j\n";'
=output
0 1