PadWalker   (3pm) manpage
PadWalker
3pm
2003-07-30
perl v5.8.4
User Contributed Perl Documentation
  • NAME
      PadWalker - play with other peoples' lexical variables
  • SYNOPSIS

        use PadWalker qw(peek_my peek_sub);
        ...

  • DESCRIPTION
      PadWalker is a module which allows you to inspect (and even change!) lexical variables in any subroutine which called you. It will only show those variables which are in scope at the point of the call.

      The "peek_my" routine takes one parameter, the number of call levels to go back. (It works the same way as caller() does.) It returns a reference to a hash which associates each variable name with a reference to its value. The variable names include the prefix, so $x is actually '$x'.

      For example:


        my $x = 12;
        my $h = peek_my(0) ;
        ${$h->{'$x'}}++;




        print $x;  # prints 13



      Or a more complex example:


        sub increment_my_x {
          my $h = peek_my(1) ;
          ${$h->{'$x'}}++;
        }




        my $x=5;
        increment_my_x;
        print $x;  # prints 6



      The "peek_sub" routine takes a coderef as its argument, and returns a hash of the lexical variables used in that sub.
  • AUTHOR
      Robin Houston <robin@cpan.org>

      With contributions from Richard Soberberg, and bug-spotting from Peter Scott.
  • SEE ALSO
      Devel::LexAlias, Devel::Caller, Sub::Parameters
  • COPYRIGHT
      Copyright (c) 2000-2002, Robin Houston. All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself.
Current Users: 43 © 1999-2006 Linux.com.hk PenguinSoft
All trademarks and copyrights on this page are owned by their respective companies. Linux is a trademark of Linus Torvalds.