Perl :Доступ к «моим» переменным из другого файла

У нас есть на работе скрипт Perl, который используется для обслуживания. Мне нужно было изменить его, чтобы обрабатывать больше задач. Проблема в том, что скрипт скомпилирован и исходники давно утеряны.

Я пытался использовать B ::Deparse, чтобы воссоздать файл, но Deparse не идеален, и вывод неисправен (и содержит очень большие ~5000 строк депарсированного кода ).

Прочитав депарсированный код, я обнаружил, что мне нужно изменить одну функцию. Скомпилированный скрипт загружает простой -модуль текстового скрипта, поэтому я изменил модуль, чтобы переопределить функцию и выполнить задачу, которую мне нужно выполнить. Проблема сейчас в том, что я не могу получить доступ к основным переменным сценария "мои".

Вот пример:

# main.pl

my $a = 1;

sub call_me {
    print "unmodified";
}

use MOD;

call_me;


MOD.pm
package MOD;

main::{'call_me'} = sub {
    print "\$main::a = $main::a\n";
}

Результатом является :" $main::a =" вместо получения реального значения.

Заранее спасибо.

5
задан Brian Phillips 13 July 2012 в 21:05
поделиться