---
name: "Devel::Leak"
section: "3pm"
platform: "linux"
package: "perl-devel-leak"
version: "0.03-17"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Devel::Leak"
---

# Devel::Leak(3pm)

Utility for looking for perl objects that are not reclaimed.

## NAME

Devel::Leak - Utility for looking for perl objects that are not reclaimed.

## SYNOPSIS

```
  use Devel::Leak;
  ... setup code
  my $count = Devel::Leak::NoteSV($handle);
  ... code that may leak
  Devel::Leak::CheckSV($handle);
```

## DESCRIPTION

Devel::Leak has two functions `"NoteSV"` and `"CheckSV"`.

`"NoteSV"` walks the perl internal table of allocated SVs (scalar values) - (which actually  contains arrays and hashes too), and records their addresses in a table. It returns a count of these "things", and stores a pointer to the table (which is obtained from the heap using **malloc()**) in its argument.

`"CheckSV"` is passed argument which holds a pointer to a table created by `"NoteSV"`. It re-walks the perl-internals and calls **sv\_dump()** for any "things" which did not exist when `"NoteSV"` was called. It returns a count of the number of "things" now allocated.

## CAVEATS

Note that you need a perl built with -DDEBUGGING for **sv\_dump()** to print anything, but counts are valid in any perl.

If new "things" *have* been created, `"CheckSV"` may (also) report additional "things" which are allocated by the **sv\_dump()** code.

## HISTORY

This little utility module was part of Tk until the variable renaming in perl5.005 made it clear that Tk had no business knowing this much about the perl internals.

## AUTHOR

Nick Ing-Simmons \<nick@ni-s.u-net.com\>
