#perl
#perl
Вопрос:
Не мог бы кто-нибудь, пожалуйста, привести меня на информационную страницу, где я могу прочитать о том, как работает этот синтаксис и что он на самом деле делает? Например, в чем разница между… use Mojo::Base 'Mojolicious::Plugin';
и use Mojo::Base;
?
Я не совсем понимаю заключенную в кавычки 'Foo::Bar'
часть, в приведенном выше примере 'Mojolicious::Plugin'
часть.
Заранее благодарю вас.
Комментарии:
1. Смотрите документацию Mojo::Base
2. спасибо за ваш отзыв, но, к сожалению, это мне не поможет. вопрос не относится конкретно к MOJO, он просто касается синтаксиса «FOO::BAR ‘baz'». я знаю, для чего нужен FOO::BAR, но ‘baz’?
3. Смотрите документацию для использования СПИСКА модулей .
Ответ №1:
use Module::Name 'foo', 'bar'
загрузит Module::Name
модуль (как оператор времени компиляции), а затем вызовет его import
метод, передающий список 'foo', 'bar'
. Смотрите документацию по использованию и импорту. Модуль может определить ее импорт способ, чтобы сделать все, что он хочет, а экспортера — это распространенный способ сделать импорт способ, который экспортирует функции по имени.
В частности, для Mojo::Base его метод импорта при передаче имени класса настраивает текущий пакет как подкласс переданного имени класса. Он также выполняет множество других настроек по умолчанию, как задокументировано.
Ответ №2:
Смотрите документацию 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__, @_) }
Комментарии:
1. спасибо, значит, в vanilla perl после «использовать FOO::BAR » никогда не стоит «‘baz’ «?
2. Да, это может быть, например,
use List::Util 'max'
импортироватьmax
подпрограмму изList::Util