Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: how to find the module of a specific function? symbol table -- oneliner

by Discipulus (Abbot)
on Oct 26, 2017 at 16:16 UTC ( #1202085=note: print w/replies, xml ) Need Help??


in reply to how to find the module of a specific function?

Hello rumpumpel1,

you probably mean that TeamForge6 will use many other modules and you want to spot where login sub is located?

For sure there are safer method, safer in respect to what i propose here, but..

Symbol table has the information you want. Dealing with that is somehow dangerous but some module, for debugging task, can be helpful.

For example Devel::Symdump can be used to inspect symbol table. The following oneliner search the whole symbol table, recursively and in any package for a function given in as $ARGV[0]

perl -MDevel::Symdump -E "package A{sub asub{1}}package B::B{sub bsub{ +1}};; $sym=Devel::Symdump->rnew('main'); for $p($sym->packages){ for ($sym->functions($p)){die qq($_ found in package $p) if $_ +eq $p.'::'.$ARGV[0]} }" bsub B::B::bsub found in package B::B at -e line 1.

PS sligthly modified the above to show that it recurse package names

I have many evil links about symbol table at my homenode

L*

There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1202085]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (3)
As of 2022-05-21 13:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you prefer to work remotely?



    Results (76 votes). Check out past polls.

    Notices?