I want to create a module get info from different websites.And the other ones can calle my module'api just like this:
my $n=new->new();
$n->get_from_bbc(#some param#)
$n->get_from_voanews(#some param#)
Now I implement it like this.
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
}
But it seem trivial ,I thought if i can do like this .It will be better
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;
};
}
But the problem is that inside anonymous sub I don't know the other call the anonymity by
$n->get_from_bbc(#some param#)
or
$n->get_from_voanews(#some param#)
!
|