“使用Mojo :: Base'Mojolicious :: Plugin'”引用语句的含义是什么?

时间:2019-03-05 09:38:12

标签: perl

有人可以带我进入一个内容丰富的页面,在这里我可以阅读有关此语法的工作原理以及其实际作用的信息? 在实例中,...之间有什么区别 use Mojo::Base 'Mojolicious::Plugin';use Mojo::Base;吗?

我不太理解上面例子中引述的'Foo::Bar'部分,'Mojolicious::Plugin'部分。

谢谢。

2 个答案:

答案 0 :(得分:2)

use Module::Name 'foo', 'bar'将(作为编译时语句)加载Module::Name模块,然后调用其import方法并传递列表'foo', 'bar'。请参阅useimport的文档。模块可以定义其导入方法以执行所需的任何操作,但是Exporter是获取按名称导出函数的导入方法的常用方法。

对于Mojo :: Base来说,特别是在传递类名时,其导入方法会将当前包设置为传递的类名的子类。默认情况下,它还会执行许多其他设置,如文档所述。

答案 1 :(得分:1)

请参阅Mojo::Base文档。 我自己没有使用过此软件包,但似乎use Mojo::Base 'Mojolicious::Plugin'是以下代码的快捷方式:

use strict;
use warnings;
use utf8;
use feature ':5.10';
use mro;
use IO::Handle ();
require Mojolicious::Plugin;
push @ISA, 'Mojolicious::Plugin';
sub has { Mojo::Base::attr(__PACKAGE__, @_) }