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

perl – Moose \u0026\u0026 utf8(包|方法)的名字

发布时间:2020-12-15 23:22:15 所属栏目:大数据 来源:网络整理
导读:有这个: use utf8;package ángryBird; #note the á in the package name perl -c结果是语法OK. use utf8;package ángryMoose;use Moose; perl -c说, ángryMoose is not a module name at /opt/local/lib/perl5/site_perl/5.12.4/darwin-multi-2level/Cl
有这个:

use utf8;
package ángryBird;   #note the á in the package name

perl -c结果是语法OK.

use utf8;
package ángryMoose;
use Moose;

perl -c说,

ángryMoose is not a module name at 
/opt/local/lib/perl5/site_perl/5.12.4/darwin-multi-2level/Class/MOP/Package.pm
 line 209.

那么,代码中有什么问题?

解决方法

Moose使用Package :: Stash :: PP中的 this regexp来检查包名:

elsif ($package !~ /A[0-9A-Z_a-z]+(?:::[0-9A-Z_a-z]+)*z/) {
    confess "$package is not a module name";
}

或者来自Package :: Stash :: XS的this regexp:

const char *vmre = "A[0-9A-Z_a-z]+(?:::[0-9A-Z_a-z]+)*z";

但是你在命名空间Package :: Stash中使用may create your own package stash inplementation,并在加载Package :: Stash之前通过设置环境变量PACKAGE_STASH_IMPLEMENTATION或变量$Package :: Stash :: IMPLEMENTATION来使用它.例如,如果您的实现具有名称Package :: Stash :: My,则将变量设置为My.

(编辑:李大同)

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

    推荐文章
      热点阅读