http://www.perlmonks.org?node_id=757939


in reply to Re^3: if(my) scope
in thread if(my) scope

IMO the $h is visible entirely to the outer {} rather than 'if' block

No, it is not, a variable "lives" in the most inner block of code where it has been declared. If it is declared in an "if" condition or in a loop initialization, it is accessible only inside the "if" or loop block.

citromatik

Replies are listed 'Best First'.
Re^5: if(my) scope
by citromatik (Curate) on Apr 16, 2009 at 11:35 UTC

    It is stated in the docs (as dada pointed out), so this is not a bug.

    citromatik

      Is a documented bug any less of a bug?
Re^5: if(my) scope
by dave_the_m (Monsignor) on Apr 16, 2009 at 11:23 UTC
    Agreed. It's a bug: the compile-time and run-time scopes differ.

    Dave.

      not a bug, as already explained, but a sin...
      right now i always seen DESTROY called exactly when the refcount fall to zero. was pretty predictable.

      anyway by being clearly documented i expect changes in the future, and that force me to find another way.

      Oha