Ошибка сценария Perl: несоответствие версии byteloader

У меня есть Perl-скрипт для отчетов TSM, который прекрасно работал в AIX версии 5. После обновления AIX до версии 6 скрипт не работает. Я получаю эту ошибку:

byteloader version mismatch expected 0.5 , got 0.6 .

Я думаю, что после обновления ОС Perl также был обновлен с Perl 5.8.2 (работает) до 5.8.8 (не работает).

Что мне нужно сделать, чтобы этот скрипт работал в AIX 6?

1 ответ

Ваш скрипт на Perl, очевидно, использует байт-код. Байт-код похож на скомпилированный код. Это предварительно проанализированный код, который загружается более эффективно, чем обычный код скрипта (очень плохое объяснение, вероятно, википедия работает лучше).
Однако в Perl запуск байт-кода ограничен версией модуля, с которым он был собран. Так что это означает, что вы использовали ByteLoader 0.5 для создания байт-кода, но у версии, в которой вы его запускаете, есть версия 0.6.

Решение состоит в том, чтобы либо перестроить сценарий с более новой версией модуля ByteLoader (в документации содержится инструкция для этого), либо запустить обычный сценарий без байт-кода. Однако оба требуют, чтобы у вас все еще была нормальная версия без байтового кода.

Другие вопросы по тегам