The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

PadWalker - walk pads

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 variable 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@kitsite.com>

With contributions from Richard Soberberg.

SEE ALSO

perl(1).

COPYRIGHT

Copyright (c) 2000-2001, 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.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 70:

=back without =over