[devel] Помогите собрать mysql-mmm

thecrux на gmail.com thecrux на gmail.com
Ср Авг 3 06:02:27 UTC 2011


On Tue, Aug 02, 2011 at 06:28:41PM -0400, Dubrovskiy Viacheslav wrote:
> Спасибо.
> теперь там такое вылазит:
> 
> Bareword "main::MMM_PROTOCOL_VERSION" not allowed while "strict subs" in
> use at
> /usr/src/tmp/mysql-mmm-buildroot/usr/share/perl5/MMM/Agent/Agent.pm line 90.
> Bareword "main::MMM_PROTOCOL_VERSION" not allowed while "strict subs" in
> use at
> /usr/src/tmp/mysql-mmm-buildroot/usr/share/perl5/MMM/Agent/Agent.pm line 91.
> /usr/src/tmp/mysql-mmm-buildroot/usr/share/perl5/MMM/Agent/Agent.pm had
> compilation errors.

Константа MMM_PROTOCOL_VERSION определена в скрипте, который вызывает этот
модуль. Поэтому на этапе проверки синтаксиса модуля это ошибка, но при вызове 
из скрипта - всё будет работать. 
 
Для решения проблемы можно добавить префикс '&', т.е.
  &main::MMM_PROTOCOL_VERSION
используя тот факт, что все скалярные константы в perl на самом деле inline
процедуры.
 
Или, как вариант, выделить проблемный блок и указать в нём директиву
`no strict 'subs';` :
 
 
-
-   if ($version > main::MMM_PROTOCOL_VERSION) {
-       WARN "Version in command '$cmd_name' ($version) is greater than mine (", main::MMM_PROTOCOL_VERSION, ")"
-   }
+
+   {
+       no strict 'subs';
+       if ($version > main::MMM_PROTOCOL_VERSION) {
+           WARN "Version in command '$cmd_name' ($version) is greater than mine (", main::MMM_PROTOCOL_VERSION, ")"
+       }
+   }

-- 
Vladimir Lettiev aka crux ✉ theCrux на gmail.com


Подробная информация о списке рассылки Devel