Perl Moose - Как мне развернуть мой файл pm? - PullRequest
4 голосов
/ 17 июля 2011

Я пытаюсь изучить Moose и должен знать, как правильно развернуть мой файл pm в классе.

Я имею в виду, что я создал Person.pm.

Могу ли я вызвать это в моем основном пакете, если он находится в той же папке, что и мой скрипт main.pl, использующий Person; или мне нужно сделать make и развернуть его в моем местоположении perl-модулей @INC, прежде чем я смогу использовать этот файл?

Я надеюсь создать файлы классов pm в моей локальной папке, а затем просто вызвать их с помощью моей программы main.pl в этой папке.

Как бы я поступил так?

1 Ответ

10 голосов
/ 17 июля 2011

Perl по умолчанию имеет . в качестве первого элемента в @INC, поэтому будет работать бок о бок.Если вы хотите быть немного более изощренным, вы можете использовать FindBin и use lib:

#!/usr/bin/env perl
use strict;
use warnings;

use FindBin;
use lib "$FindBin::Bin/lib";

# Main program continues...

Теперь поместите ваши модули в lib/ в тот же каталог, что и ваш скрипт, и ваш скрипт будетувидеть их.Это сохраняет ваши библиотечные модули и ваши сценарии (ы) разделены.Если вы пишете тесты, у вас может быть библиотека t/ с сценариями тестирования, начинающимися следующим образом:

use strict;
use warnings;

use FindBin;
use lib "$FindBin::Bin/../lib";

use Test::More;
# other test modules, your plan, etc.

И ваши тесты также будут выглядеть в нужном месте для библиотечных модулей.

Вы также можете использовать PERL5OPT=-I/path/to/some/library, чтобы добавить этот путь к @INC, и тогда вам вообще не понадобится use lib.

...