In Perl we can get the name of the current package and current line number Using the predefined variables like __PACKAGE__ and __LINE__.
__PACKAGE__
__LINE__
Li
Use the caller() function:
my $sub_name = (caller(0))[3];
This will give you the name of the current subroutine, including its package (e.g. 'main::test'). Closures return names like 'main::__ANON__'and in eval it will be '(eval)'.
'main::test'
'main::__ANON__'
'(eval)'