---
name: "Devel::LexAlias"
section: "3pm"
platform: "linux"
package: "libdevel-lexalias-perl"
version: "0.05-3+b4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Devel::LexAlias"
---

# Devel::LexAlias(3pm)

alias lexical variables

## NAME

Devel::LexAlias - alias lexical variables

## SYNOPSIS

```
 use Devel::LexAlias qw(lexalias);
 sub steal_my_x {
     my $foo = 1;
     lexalias(1, '$x', \$foo);
 }
 sub foo {
     my $x = 22;
     print $x; # prints 22
     steal_my_x;
     print $x; # prints 1
 }
```

## DESCRIPTION

Devel::LexAlias provides the ability to alias a lexical variable in a subroutines scope to one of your choosing.

If you don't know why you'd want to do this, I'd suggest that you skip this module.  If you think you have a use for it, I'd insist on it.

Still here?

- lexalias( $where, $name, $variable )

  `$where` refers to the subroutine in which to alias the lexical, it can be a coderef or a call level such that you'd give to `"caller"`

  `$name` is the name of the lexical within that subroutine

  `$variable` is a reference to the variable to install at that location

## BUGS

lexalias delves into the internals of the interpreter to perform its actions and is so very sensitive to bad data, which will likely result in flaming death, or a core dump.  Consider this a warning.

There is no checking that you are attaching a suitable variable back into the pad as implied by the name of the variable, so it is possible to do the following:

```
 lexalias( $sub, '$foo', [qw(an array)] );
```

The behaviour of this is untested, I imagine badness is very close on the horizon though.

## SEE ALSO

peek\_sub from PadWalker, Devel::Peek

## AUTHOR

Richard Clamp \<richardc@unixbeard.net\> with close reference to PadWalker by Robin Houston

## COPYRIGHT

Copyright (c) 2002, 2013, Richard Clamp. All Rights Reserved.  This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself.
