---
name: "Devel::Caller"
section: "3pm"
platform: "linux"
package: "libdevel-caller-perl"
version: "2.07-1+b3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Devel::Caller"
---

# Devel::Caller(3pm)

meatier versions of "caller"

## NAME

Devel::Caller - meatier versions of "caller"

## SYNOPSIS

```
 use Devel::Caller qw(caller_cv);
 $foo = sub { print "huzzah\n" if $foo == caller_cv(0) };
 $foo->();  # prints huzzah
 use Devel::Caller qw(called_with);
 sub foo { print called_with(0,1); }
 foo( my @foo ); # should print '@foo'
```

## DESCRIPTION

- caller\_cv($level)

  `"caller_cv"` gives you the coderef of the subroutine being invoked at the call frame indicated by the value of `$level`

- caller\_args($level)

  Returns the arguments passed into the caller at level `$level`

- caller\_vars( $level, $names ) =item called\_with($level, $names)

  `"called_with"` returns a list of references to the original arguments to the subroutine at `$level`.  if `$names` is true, the names of the variables will be returned instead

  constants are returned as `"undef"` in both cases

- called\_as\_method($level)

  `"called_as_method"` returns true if the subroutine at `$level` was called as a method.

## BUGS

All of these routines are susceptible to the same limitations as `"caller"` as described in "caller" in perlfunc

The deparsing of the optree performed by called\_with is fairly simple-minded and so a bit flaky.

- •

  As a version 2.0 of Devel::Caller we no longer maintain compatibility with versions of perl earlier than 5.8.2.  Older versions continue to be available from CPAN and backpan.

## SEE ALSO

"caller" in perlfunc, PadWalker, Devel::Peek

## AUTHOR

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

## COPYRIGHT

Copyright (c) 2002, 2003, 2006, 2007, 2008, 2010, 2013, 2023 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.
