Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re^6: $1 not "freezing" in an addition

by chromatic (Archbishop)
on Dec 14, 2012 at 18:10 UTC ( #1008889=note: print w/ replies, xml ) Need Help??


in reply to Re^5: $1 not "freezing" in an addition
in thread $1 not "freezing" in an addition

I see no reason perlcritic couldn't do the same

PPI won't descend into functions or methods and can't descend into XS. You can only get so far with static analysis when trying to find all modifications of a global variable at or below your current call site.


Comment on Re^6: $1 not "freezing" in an addition
Re^7: $1 not "freezing" in an addition
by Anonymous Monk on Dec 15, 2012 at 08:40 UTC

    PPI won't descend into functions or methods

    Doesn't stop perlcritic from doing the descending, or running B::Xref

    and can't descend into XS

    descending into XS is not insurmountable either

    You can only get so far with static analysis when trying to find all modifications of a global variable at or below your current call site.

    You can well get pretty far I tell you what

    who says we have to find them all? or even descend? or even all globals?

    I see no use case for relying on the behaviour we see here , so IMHO it seems like a very safe low level warning for every  $global ... func to be turned into  "$global" ... func , esp for $1

      Doesn't stop perlcritic from doing the descending, or running B::Xref

      How is P::C to descend into code that's not loaded until runtime?

      descending into XS is not insurmountable either

      How is P::C to descend into compiled code that's not loaded until runtime and for which the source code is not available?

      IMHO it seems like a very safe low level warning for every $global ... func to be turned into "$global" ... func , esp for $1

      How do you know you've caught every global? How do you know stringification is desirable?

        How is P::C to descend into code that's not loaded until runtime?

        It could, wait for it, load the code

        do the scandeps dance

        not do anything at all

         

        How is P::C to descend into compiled code that's not loaded until runtime and for which the source code is not available?

        Who said P::C is supposed to do it ?

        How do you know you've caught every global? How do you know stringification is desirable?

        Clearly stringification of $1 is undesireable -- I am humbled by your logic

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (6)
As of 2014-12-27 11:22 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

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





    Results (177 votes), past polls