Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Determining a module's user

by clueless newbie (Hermit)
on Oct 10, 2007 at 15:54 UTC ( #644003=perlquestion: print w/ replies, xml ) Need Help??
clueless newbie has asked for the wisdom of the Perl Monks concerning the following question:

I have a module which uses Filter::Simple and I would like to know while filtering the name of the module that I'm filtering. Is there any way to do that?

Comment on Determining a module's user
Re: Determining a module's user
by Fletch (Chancellor) on Oct 10, 2007 at 16:37 UTC

    caller looks to work sanely inside the Filter::Simple called block (at least with a quick test module).

    $ cat FSTest.pm package FSTest; use Filter::Simple; FILTER { print STDERR "in FILTER, caller package: ", (caller( 1 ))[0], "\n"; } 1; $ perl -MFSTest -e 0 in FILTER, caller package: main

    Update: Oop. Quick test module FTL then apparently. You may can get at it by calling caller in a custom import sub of your own, of you might have to fall back to using Filter::Util::Call instead. We're past my simple experience with Filter::Simple at any rate.

      For me (Windows/Activestate 5.8) it doesn't. If "main" calls "package" and "package" uses the filtering module, (caller( 1 ))[0] returns not "package" but "main".

      I've found a poor work around that involves "use myFilter __PACKAGE__;".

      Thanks, Fletch!
      --- it seems to be (caller(1))[1]!

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://644003]
Approved by perrin
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (3)
As of 2015-07-06 00:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (68 votes), past polls