$s=sub{
my $name=(caller(0))[3];
my $parent=(caller(1))[3];
print "I am :$name,my parent is :$parent\n"
};
*aa=$s;
my $bb='bb';
*{$bb}=$s;
aa();
bb();
output:
name:main::__ANON__,parent:
name:main::__ANON__,parent:
####
my $n=new->new();
$n->get_from_bbc(#some param#)
$n->get_from_voanews(#some param#)
####
package news;
sub new
{
*get_from_bbc=sub{
#post GET request to www.bbc.com
get www.bbc.com;
#and do some process
return res;
};
*get_from_voanews=sub{
#post GET request to www.bbc.com
get www.bbc.com;
#and do some process
return res;
}
#and more sub like above
#and more sub like above
#and more sub like above
#and more sub like above
}
####
package news;
sub new
{
my %news_sites={
get_from_bbc=>'www.bbc.com',
get_from_voanews=>'www.voanews.com',
#more websites#
}
foreach (keys %news_sites)
{
*{$_}=sub{ #post GET request to www.bbc.com
###############
#if i can get the name of Subroutine
#I can do it like this.
############
get %news_sites{$name_of_Subroutine};
#and do some process
return res;
};
}
####
$n->get_from_bbc(#some param#)
####
$n->get_from_voanews(#some param#)