require will translate a package spec to a path, but it needs to be a bareword. That can simplify your method, as long as you remember to use the string version of eval:
use constant BASE => 'XX::XDC';
my $change = BASE . '::raja';
eval "require $change";
die($@) if ($@);
$change->new();