具有什么意义以及这样的影响是什么(我认为它是面向对象的):
use My::Confusing::Code
{
CITY => { MODIFY => 1,
DEFAULT => My::Even::more::complicated->func(),
},
STATE => { MODIFY => 1,
DEFAULT => 'Concatenate()',
},
COUNTRY => { MODIFY => 1,
REQUIRED => 0,
DEFAULT => 'Gabon',
},
}
My :: Confusing :: Code包/模块/类会对花括号中的内容做什么。花括号是否包含代码块或哈希引用?
答案 0 :(得分:13)
这是一个哈希引用。
当你use Module::Foo @stuff;
时,幕后发生的事情是:
BEGIN {
require "Module/Foo.pm";
Module::Foo->import( @stuff );
};
通常,传递给import
的参数用于请求将符号导出到命名空间中。 (执行此操作的典型方法是使用标准Exporter模块中的import
子例程。)但在这种情况下,模块作者编写了一个自定义import
方法,该方法采用hashref用它做点什么。