Thread Name einer Sub: aus Referenz lesen (7 answers)
Opened by mordur at 2005-04-22 15:23

sri
 2005-04-22 16:36
#54144 #54144
User since
2004-01-29
828 Artikel
BenutzerIn
[Homepage] [default_avatar]
Es geht, sofern dahinter wirklich eine named sub steckt, wir machen soetwas aehnliches in Catalyst.

Du kannst dir mit hilfe von B den COMP_STASH deiner coderef holen und dann die richtige symboltabelle nach dem passenden namen zur code addresse abgrasen.

Hier mal etwas pseudocode dazu.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
sub test { 1 }
my $code = \&test;
use B;
my $class = B::svref_2object($code)->STASH->NAME;
my $name = '';
for my $sym ( values %{ $class . '::' } ) {
   if ( *{$sym}{CODE} && *{$sym}{CODE} == $code ) {
       $name = *{$sym}{NAME};
   }
}
print "Name is $name\n";


Ist aber nicht wirklich was fuer anfaenger, und natuerlich undokumentiert. ;)\n\n

<!--EDIT|sri|1114173732-->

View full thread Name einer Sub: aus Referenz lesen