Ярлык для импорта модулей?

Я часто импортирую те же модули, используя во многих сценариях следующие строки. Есть ли способ сделать это в одной строке?

use WWW::Mechanize;
use WWW::TreeBuilder::XPath;
use feature 'say';

Ответ 1

Что я сделал, это поместить все это в свой собственный модуль, скажем MyProject::Policy, а затем просто use MyProject::Policy;. Я получил эту идею от common::sense.

Используя Import::Into, я получаю что-то вроде этого:

package MyProject::Policy;

use strict;
use warnings;

use Import::Into ();
use WWW::Mechanize ();
use WWW::TreeBuilder::XPath ();

sub import {
  my $caller = caller;

  feature->import::into($caller, 'say');
  strict->import::into($caller);
  warnings->import::into($caller);
}

1;

(Вам даже не нужен Import:: Into для двух модулей, которые вы предоставили, поскольку они ничего не экспортируют.)

Теперь вы можете просто use использовать этот модуль и получить все модули, которые вам нужны, и все импортируемые им проекты.