Назад | Перейти на главную страницу

Ошибка сценария Perl: несоответствие версии загрузчика байтов

У меня есть сценарий 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?

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

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