# perldoc > Pod::Simple::Debug

---
type: CommandReference
command: Pod::Simple::Debug
mode: perldoc
section: 
source: perldoc
---

## Quick Reference

- `use Pod::Simple::Debug (5)` — set debug level to 5 (constant, must be loaded before Pod::Simple)
- `use Pod::Simple::Debug (\$var, 0)` — set debug level via a variable reference, initially 0 (allows runtime changes)

## Name

Put Pod::Simple into trace/debug mode.

## Synopsis

perl
use Pod::Simple::Debug (5);  # or some integer

# Or:

my $debuglevel;
use Pod::Simple::Debug (\$debuglevel, 0);
# ... some code that uses Pod::Simple without debug output ...
$debuglevel = 4;
# ... some code that uses Pod::Simple with debug output ...
$debuglevel = 0;
## Notes

- Load this module **before** loading `Pod::Simple` (or any Pod::Simple-based class). If loaded after `Pod::Simple::DEBUG` is already defined, it will die with "It's too late to call Pod::Simple::Debug".
- The `use Pod::Simple::Debug (\$x, somenum)` mode makes Pod::Simple run slower because `Pod::Simple::DEBUG` is no longer a constant sub, preventing constant-folding.

## Examples

The following use statements are equivalent to the corresponding `BEGIN` blocks:

perl
use Pod::Simple::Debug (5);
# is equivalent to:
BEGIN { sub Pod::Simple::DEBUG () {5} }
use Pod::Simple ();
perl
use Pod::Simple::Debug (\$debug_level, 0);
# is equivalent to:
my $debug_level;
BEGIN { $debug_level = 0 }
BEGIN { sub Pod::Simple::DEBUG () { $debug_level } }
use Pod::Simple ();
## See Also

- [Pod::Simple](https://www.chedong.com/phpMan.php/perldoc/Pod%3A%3ASimple/markdown)
- "Constants in Perl", *The Perl Journal* issue 21 ([interglacial.com/tpj/21/](http://interglacial.com/tpj/21/))