Acme-Lexical-Thief

 view release on metacpan or  search on metacpan

LICENSE  view on Meta::CPAN

changed that file, and provided that you do at least ONE of the following:

  a) place your modifications in the Public Domain or otherwise make them
     Freely Available, such as by posting said modifications to Usenet or an
     equivalent medium, or placing the modifications on a major archive site
     such as ftp.uu.net, or by allowing the Copyright Holder to include your
     modifications in the Standard Version of the Package.

  b) use the modified Package only within your corporation or organization.

  c) rename any non-standard executables so the names do not conflict with
     standard executables, which must also be provided, and provide a separate
     manual page for each non-standard executable that clearly documents how it
     differs from the Standard Version.

  d) make other distribution arrangements with the Copyright Holder.

4. You may distribute the programs of this Package in object code or executable
form, provided that you do at least ONE of the following:

  a) distribute a Standard Version of the executables and library files,

README  view on Meta::CPAN

       {
          # ... but $foo won't exist in this block!
          ...
       }

    If you attempt to steal a variable which does not exist, then a run-time
    exception will be thrown.

WHY YOU SHOULD NOT USE THIS MODULE
    When people declare lexical (`my`) variables within a sub, they (quite
    reasonably) expect these to stay local to the sub. If they rename those
    variables, change them (say replacing a hashref with a hash), drop them or
    whatever, then they don't expect code outside the sub to pay much
    attention.

    Peeking at your caller's lexicals breaks those expectations.

    Peeking at your caller's lexicals leaks an abstraction.

    Peeking at your caller's lexicals can cause spooky action at a distance.

lib/Acme/Lexical/Thief.pm  view on Meta::CPAN

      # ... but $foo won't exist in this block!
      ...
   }

If you attempt to steal a variable which does not exist, then a run-time
exception will be thrown.

=head1 WHY YOU SHOULD NOT USE THIS MODULE

When people declare lexical (C<my>) variables within a sub, they (quite
reasonably) expect these to stay local to the sub. If they rename those
variables, change them (say replacing a hashref with a hash), drop them
or whatever, then they don't expect code outside the sub to pay much
attention.

Peeking at your caller's lexicals breaks those expectations.

Peeking at your caller's lexicals leaks an abstraction.

Peeking at your caller's lexicals can cause spooky action at a distance.



( run in 0.381 second using v1.01-cache-2.11-cpan-e9daa2b36ef )