Матрица CPAN показывает, что этот модуль испытывает проблемы при сборке на Perl v5.22 или выше. Если вы можете использовать и построить этот модуль на более ранней версии Perl, это один из вариантов для вас.
В журналах показана та же проблема, которую вы обнаружили: устаревшая конструкция регулярного выражения, но это не является фатальной ошибкой (пока) и не является причиной сбоя сборки.
Детализация и запуск тестового скрипта с Perl v5.24 в отладчике, я вижу, что строка
eval { require "test/classtest.pm" } ;
устанавливает $@
(что означает, что вызов require
не выполнен) со следующим сообщением:
DB<1> p $@
Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at test/classtest.pm line 5.
at test/classtest.pm line 5.
require test/classtest.pm called at test.pl line 8
eval {...} called at test.pl line 8
Compilation failed in require at test.pl line 8.
Итак, мы видим, что в этом пакете (который последний раз обновлялся в 2005 году) используется конструкция defined(@array)
, которая давно устарела и была запрещена с версии v5.22.0 .
Конструкция defined(@array)
используется 4 раза в lib/Class/HPLOO/Base.pm
и lib/Class/HPLOO.pm
. Вы можете попытаться исправить их самостоятельно и пересобрать модуль.