有人可以带我进入一个内容丰富的页面,在这里我可以阅读有关此语法的工作原理以及其实际作用的信息?
在实例中,...之间有什么区别
use Mojo::Base 'Mojolicious::Plugin';
和
use Mojo::Base;
吗?
我不太理解上面例子中引述的'Foo::Bar'
部分,'Mojolicious::Plugin'
部分。
谢谢。
答案 0 :(得分:2)
use Module::Name 'foo', 'bar'
将(作为编译时语句)加载Module::Name
模块,然后调用其import
方法并传递列表'foo', 'bar'
。请参阅use和import的文档。模块可以定义其导入方法以执行所需的任何操作,但是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__, @_) }