Я думаю, вы сможете сделать это, изменив PL_curstash
и PL_curstname
на уровне C.
PL_curstash = gv_stashpvs("Some::Package", GV_ADD);
sv_setpvs(PL_curstname, "Some::Package");
PL_curstash
- это хранилище текущего пакета во время компиляции, PL_curstname
- это его имя.
Обновление:
Я нашел эту проблему довольно интересной и реализовал решение как Devel::ChangePackage
.Оказывается, то, что я изначально предложил, просто работает.Вы можете получить его либо из http://github.com/rafl/devel-changepackage,, либо из ближайшего к вам зеркала CPAN, как только они обновятся.