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

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

by Khen1950fx (Canon)
on Aug 21, 2012 at 02:38 UTC ( #988554=note: print w/ replies, xml ) Need Help??


in reply to undef/defined &{$name} while "strict refs"

You could use "the one exception to the rule":

#!/usr/bin/perl -l use autodie; use common::sense; sub walk { use strict qw/refs/; use warnings FATAL => 'syntax'; print "Walk this!"; } sub run { use strict qw/refs/; use warnings FATAL => 'syntax'; print "Run with this!"; } my $walkable = defined &{ 'walk' }; undef &{'walk'}; my $runable = \&{ 'run' }; &$runable;


Comment on Re: undef/defined &{$name} while "strict refs"
Download Code
Re^2: undef/defined &{$name} while "strict refs"
by anazawa (Scribe) on Aug 21, 2012 at 03:22 UTC
    Thanks to your explanation, I understand "strict refs" allows the following:
    my $runable = \&{ 'run' }; &$runable;
    Your code shows how we avoid throwing exceptions. I think, however, it's still unclear why defined/undef &{ 'run' } doesn't throw exceptions 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

        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.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (10)
As of 2014-12-29 13:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (188 votes), past polls