Я хочу использовать несколько пакетов и некоторые прагмы во всех моих программах, например:
use 5.014;
use warnings;
use autodie;
use My::ModuleA::Something;
use ModuleB qw(Func1 Func2);
Я не хочу повторяться в каждом модуле, поэтому ищу способ сделать один пакет, например My::Common
что будет содержать вышеупомянутые пакеты и в моих программах только:
use My::Common;
say Func1("hello"); #say enabled and Func1 imported in the My::Common
как этого добиться?
Было прочитано preldoc -f use
и perldoc perlmodlib
, поэтому я думаю, что должен«несколько», чтобы сделать это с BEGIN plus require & import, но абсолютно не знаю как.
ОБНОВЛЕНИЕ: Я уже пробовал основные вещи.
С require
- моей программой prg.pl.
require 'mymods.pl';
$var = "hello";
croak "$var\n";
mymods.pl содержит
use strict;
use feature 'say';
use Carp qw(carp croak cluck);
1;
НЕ РАБОТАЕТ.Получена ошибка:
$ perl prg.pl
String found where operator expected at prg.pl line 3, near "croak "$var\n""
(Do you need to predeclare croak?)
syntax error at prg.pl line 3, near "croak "$var\n""
Execution of prg.pl aborted due to compilation errors.
с «use My»:
use My;
$var = "hello";
croak "$var\n";
my My.pm
package My;
use strict;
use feature 'say';
use Carp qw(carp croak cluck);
1;
НЕ РАБОТАЕТ.Получил ту же ошибку.
Есть рабочая идея?