in reply to sub calling name

Short answer: no, the names are there only for programmer convenience. Anonymous subroutines and nasty people like me who abuse the symbol table make the other problematic.

Long answer: yes, if you're really sneaky and use AUTOLOAD.

Rhetorical answer: the long answer uses fewer words than the short one.

Replies are listed 'Best First'.
Re: Re: sub calling name
by Sidhekin (Priest) on Apr 11, 2002 at 08:18 UTC

    Well, since $divesub = \&somesub; $raisesub = \&somesub;is equivalent to $divesub = \&somesub; $raisesub = $divesub;I must confess I am clueless about how to do this even with AUTOLOAD. I think you'll need XS.

    Thing is, those are not two references to a sub. At best, you have two copies of the same reference to a sub (unless you use some kind of source filter, I guess). There is no telling those two copies apart, anymore than you can tell apart $x and $y in $x = CGI::->new; $y = $x;.

    If you allow for setting different references, there is indeed more than one way to do it. Several have been given already. I have none ready-made, but I would look into using tied variables for this, as that just _might_ be the most transparant way of doing it -- though for better transparancy, I guess you'll have to overload the assignment operator as well. <understatement>This could get tricky.</understatement>

    The Sidhekin
    print "Just another Perl ${\(trickster and hacker)},"