Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > caller и # line 30


Автор: tishaishii 23.9.2011, 12:45
Есть большая сложная система (web-интерфейс CGI), написанная непрофессиналами.
В ней необходимо отладить некоторые операции.
В файлах perl добавлены запутывающие отладку конструкции вроде:
Код

код Perl

# line 30 "/path/file"

код Perl


В подобном файле происходит вызов функции из модуля mod::fn:

Код

sub mod::fn(;@) {
          warn join ', ', caller;
...............................................
}


warn выводит, "Somethin is wrong at "/path/file" as line 30".

Как узнать реальный caller?

Для наглядности, пример:

Код

package test;

sub test(;@) {
    warn join ', ', caller;
}

package main;

# line 40 "/path/file"

&test::test();

Автор: ginnie 23.9.2011, 14:10
tishaishii, как получить реальный caller или отключить Plain Old Comments через ключи запуска не нашел. Можно во всех файлах добавить перед # пробел, чтобы Plain Old Comments не срабатывали.

Автор: tishaishii 25.9.2011, 07:27
Можно. Уже так и делаю. Только, не считаю правильным такой подход - пересмотр всего кода каждого файла.

Автор: Pfailed 25.9.2011, 15:10
А тем же однострочником на перле нельзя выпилить все эти комментарии?

Автор: tishaishii 26.9.2011, 06:29
Можно. Только, некоторые варианты не проходят.
Спасибо. Это будет затяжная война.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)