gpt4 book ai didi

perl - Moose && utf8(包|方法)名称

转载 作者:行者123 更新时间:2023-12-04 23:06:26 25 4
gpt4 key购买 nike

有这个:

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

perl -c 结果是 syntax 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 使用 this regexp来自 Package::Stash::PP 用于检查包名:

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

this regexp来自 Package::Stash::XS:

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

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

关于perl - Moose && utf8(包|方法)名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11208310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com