Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re^3: undef/defined &{$name} while "strict refs"

by Anonymous Monk
on Aug 21, 2012 at 06:43 UTC ( #988598=note: print w/ replies, xml ) Need Help??


in reply to Re^2: undef/defined &{$name} while "strict refs"
in thread undef/defined &{$name} while "strict refs"

I think, however, it's still unclear why defined/undef &{ 'run' } doesn't throw exceptions while "strict refs". ,/i>

Have you read what strict says about refs?

Please read it now


Comment on Re^3: undef/defined &{$name} while "strict refs"
Replies are listed 'Best First'.
Re^4: undef/defined &{$name} while "strict refs"
by anazawa (Scribe) on Aug 21, 2012 at 07:04 UTC
    The POD says we are allowed to get a reference to CODE using symbolic references while "strict refs". I think this doesn't mean we can defined or undef subroutines as well. I may be misreading the document.

      I think this doesn't mean we can defined or undef subroutines as well.

      I don't understand what you're saying here

        When we execute my code above, the script throws an exception because &{ 'run' } violates "strict refs". Khen1950fx explained how to avoid this problem (I appreciate his suggestion).

        On the other hand, when we comment out &{ 'run' }, my script doesn't output error messages. This result shows the following doesn't violate "strict refs":
        my $walkable = defined &{ 'walk' }; undef &{ 'walk' };
        It seems each line uses symbolic references. I don't understand why this is possible.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (13)
As of 2015-07-30 14:54 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 (271 votes), past polls