2010-10-08 10 views

Respuesta

5

Creo que podrá hacerlo cambiando PL_curstash y PL_curstname en el nivel C.

PL_curstash = gv_stashpvs("Some::Package", GV_ADD); 
sv_setpvs(PL_curstname, "Some::Package"); 

PL_curstash es el alijo del paquete actual durante la compilación, PL_curstname es su nombre.

Actualización:

que he encontrado este tipo de problema interesante e implementó la solución como Devel::ChangePackage. Resulta que lo que inicialmente sugerí simplemente funciona. Puede obtenerlo desde http://github.com/rafl/devel-changepackage, o desde un espejo CPAN cerca de usted una vez que se hayan actualizado.

+0

Pero está tratando de cambiar el paquete _caller's_, no el suyo. – cjm

+0

Es por eso que debería hacer lo anterior en lugar de presionar curstash y curstname en la pila de guardado y hacer los cambios locales al alcance actual, como lo haría la palabra clave del paquete. – rafl

Cuestiones relacionadas