Как я могу использовать локальные библиотеки репозитория hg для тестирования изоляции из уже установленных библиотек?Как изолировать от установленных библиотек в hg-репо для тестирования?
Установленный пакет производства Perl и местный Hg репо имеет ту же структуру
+-- lib
|-- modA.pm
|-- modB.pm
+-- bin
|-- example.pl
+-- t
|-- modA.t
|-- modB.t
библиотеки, установленную на и путь добавлен к @ perl5
/nfs_share/perl/
env|grep -i perl
PERL5:/usr/local/perl:/nfs_share/perl
местной рт.ст. репо на:
/data/user/hg/perl
modB.pm
#!/usr/bin/perl
use modA;
sub modB_compare{
my (x,y) = @_;
# .....
return x-y;
}
бен/example.pl
use FindBin qw($Bin);
use lib "${Bin}/lib/";
use modA, modB;
# if this call is from local lib
my $result = modB_compare(x,y);
# if sub being called from production or local hg?
my $result2 = modA_method();
# from local hg repo or from production lib?!
Если бы я изменить и тест в местной рт.ст. репо, нет Gurantee, что Lib я назвал это из локального репозитория, а не от производства LIBS.
Каковы потенциальные решения для изоляции библиотек для тестирования в локальном реестре hg?
Я думаю, вам может понадобиться немного расширить этот вопрос, чтобы получить ответ. Несколько неясно, о чем вы на самом деле спрашиваете. Вы получите предупреждение, если вы переопределите подпрограмму с помощью операции импорта. Но из ['perlmod'] (http://perldoc.perl.org/perlmod.html) вы можете возиться с typeglobs' \ * somesub {PACKAGE} '- это не поможет, если вы импортировали его в свой таблица локальных символов. – Sobrique
Вы правы, вопрос непонятен, я займу некоторое время, чтобы переработать его – Gang
Я полностью согласен с трюмом. спасибо – Gang