"使用模块"后代码块的含义是什么?

paz*_*az9 6 perl module

什么是重要的,这样的东西有什么影响(我认为它是面向对象的):

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',
               }, 
}
Run Code Online (Sandbox Code Playgroud)

My :: Confusing :: Code包/模块/类会对花括号中的内容做什么.花括号是否包含代码块或哈希引用?

fri*_*edo 13

这是一个哈希引用.

当你这样做时use Module::Foo @stuff;,幕后发生的事情是:

BEGIN { 
    require "Module/Foo.pm";
    Module::Foo->import( @stuff );
};
Run Code Online (Sandbox Code Playgroud)

通常,传递给的参数import用于请求将符号导出到命名空间中.(执行此操作的典型方法是使用import标准Exporter模块中的子例程.)但在这种情况下,模块作者编写了一个自定义import方法,该方法接受hashref并对其进行处理.

  • 模块实现`import`方法还有很多其他原因. (2认同)