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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |