加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl更改当前包?

发布时间:2020-12-16 06:24:57 所属栏目:大数据 来源:网络整理
导读:如果不使用源过滤器,有没有办法更改当前运行的包?我正在努力完成 oose.pm所做的事情,我想知道我是否可以将我的用户放入非主程序包中. 解决方法 我想你可以通过改变C级别的PL_curstash和PL_curstname来做到这一点. PL_curstash = gv_stashpvs("Some::Package
如果不使用源过滤器,有没有办法更改当前运行的包?我正在努力完成 oose.pm所做的事情,我想知道我是否可以将我的用户放入非主程序包中.

解决方法

我想你可以通过改变C级别的PL_curstash和PL_curstname来做到这一点.

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镜像获取它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读