Нужно воспользоваться специальными комментариями

#line xxx "fileyyy"

Тогда сообщения об ошибке будут лучше указывать на место проблемы.
Самое сложное это генерация адекватных filexxx и строки.
В filexxx можно вставить имя макроса которое подменяешь + параметры + номер исходной строки, а в номер строки 1 для

Пример использования этих комментариев:
=======================
sub main{
    my @argv  = @_;
# line 999 "a distant galaxy"
    die "Ship сrashed";

};
=======================
Ship сrashed at a distant galaxy line 999.
=======================

Сообщения об других ошибках тоже будут привязаны к этим маркерам

28.03.2015 19:07, PEF Secure пишет:
Hi,

прошу направить меня на путь.

Хочется получить собственный исполняемый код, который виден интерпретатору.
Нужен буквальный код, на который ссылается интерпретатор, когда говорит "такая
то ошибка в такой то строке". Дело не решается чтением исходного кода
соответствующего файла с диска, поскольку речь идёт о "фильтрованном" коде.
Вот надуманный пример:

package TestFilter;
use Filter::Simple;
FILTER_ONLY code => sub {
        s/\bIF\b(.*?) THEN/if($1){/g;
        s/\bELSE\b/} else {/g;
        s/\bEND IF\b/}/g;
        s/\bEND\b/}/g;
};
1;

use TestFilter;
use v5.018;

eval { IF 1 == 2 THEN say "impossible" ELSE say "yes" END IF };

Если внутри eval-а будет ошибка, то хочется увидеть тот самый код, что там
исполнялся интерпретатором перла.

--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить