Функция caller
сделает то, что вы ищете:
sub print_info {
my ($package, $filename, $line) = caller;
...
}
print_info(); # prints info about this line
Это позволит получить информацию о том, откуда вызывается сабвуфер, что, вероятно, то, что вы ищете.Директивы __FILE__
и __LINE__
применяются только там, где они написаны, поэтому вы не можете инкапсулировать их эффект в подпрограмме.(кроме случаев, когда вам нужен подпрограмма, которая печатает только информацию о том, где она определена)