Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re^6: accessing stashes

by morgon (Priest)
on Mar 01, 2019 at 19:35 UTC ( #1230733=note: print w/replies, xml ) Need Help??


in reply to Re^5: accessing stashes
in thread accessing stashes

I know that.

But I want one expression to determine the condition, I want to avoid (for reasons of pure idiocy) to have an extra assignment...

So something like

print defined *main::{$symbol}->*{CODE} ? "yep": "nope";
But I cannot do it...

Replies are listed 'Best First'.
Re^7: accessing stashes
by ikegami (Pope) on Mar 01, 2019 at 19:55 UTC

    It's $glob && *$glob{CODE}, not defined *main::{$symbol}->*{CODE}.

      First of all thanks a lot for solving my problem.

      But I was wondering if there is an expression that would avoid having a two-step solution (i.e. without first assigning a temporary $glob variable).

      So is there an expression that when I have a symbol ("hubba" say) I could do a

      $some_convoluted_expression{hubba}->{CODE}
      (or something like that) to determine whether or not there is a sub-routine of that name in the main-package.

      But this is for bonus-points only...

        You can't check if the glob contains a code reference before you make sure you have a glob in the first place!

        But this is all moot. This solution doesn't work as of Perl 5.22. You should be using one of the solutions that work in 5.22 and beyond. See Re^4: accessing stashes

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (4)
As of 2020-06-07 07:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you really want to know if there is extraterrestrial life?



    Results (42 votes). Check out past polls.

    Notices?