2010-10-08 26 views

cevap

5

Bunu, C düzeyindeki PL_curstash ve PL_curstname değiştirerek yapabileceksiniz.

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

PL_curstashPL_curstname onun adıdır, derleme sırasında geçerli paketin deposu.

Güncelleme: Ben ilginç bu sorunu tür bulundu ve Devel::ChangePackage olarak çözüm uyguladık

. Başlangıçta önerdiğim şey sadece işe yarıyor. http://github.com/rafl/devel-changepackage'dan veya güncelledikten sonra size yakın bir CPAN aynasından alabilirsiniz.

+0

Ancak, kendisinin değil, _caller's_ paketini değiştirmeye çalışıyor. – cjm

+0

Bu yüzden yukarıda, curstash ve curstname 'i kaydetme yığınının üzerine itmek yerine, bunu yapmak için paket anahtar kelimesinin yaptığı gibi mevcut kapsamda yerel değişiklikler yapması gerekiyor. – rafl

İlgili konular