Абонент - правильный способ сделать на @ Евгений указал , если вы хотите сделать это внутри подпрограммы.
Если вы хотите, чтобы другая часть вашей программы могла идентифицировать информацию о пакете и имени для coderef, используйте Sub :: Identify .
Кстати, глядя на
sub test()
{
print __LINE__;
}
&test();
Есть несколько важных моментов, которые следует упомянуть: во-первых, не используйте прототипы , если вы не пытаетесь имитировать встроенные функции. Во-вторых, не используйте &
, когда вызывает подпрограмму , если только вам не нужны эффекты, которые она обеспечивает.
Следовательно, этот фрагмент лучше записать как:
sub test
{
print __LINE__;
}
test();