Я упаковываю некоторые общие функции в небольшой модуль Perl, который загружаю в скрипт, используя
use lib path/to/lib
В файле модуля я импортировал некоторые другие установленные системой модули (например, Carp qw(confess)
, но я не могу вызвать confess
напрямую, а скорее Carp::confess
, что для меня непривычно.
Это мой (не) рабочий пример:
https://github.com/telatin/bioinfo/blob/master/mini/script.pl
use 5.012;
use FindBin qw($Bin);
use lib "$Bin/Demo/lib";
use Local::Module;
say "Version: ", $Local::Module::VERSION;
Local::Module->new();
Модуль: https://github.com/telatin/bioinfo/blob/master/mini/Demo/lib/Local/Module.pm
use 5.012;
use warnings;
use Carp qw(confess);
package Local::Module;
$Local::Module::VERSION = 2;
sub new {
my ($class, $args) = @_;
my $self = {
debug => $args->{debug},
};
my $object = bless $self, $class;
confess "Unable to create fake object";
return $object;
}
1;
Что мне делать в файле .pm , чтобы избежать этой проблемы?