$ valgrind --leak-check=full perl -e1 ==5030== Memcheck, a memory error detector. ==5030== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al. ==5030== Using LibVEX rev 1471, a library for dynamic binary translation. ==5030== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP. ==5030== Using valgrind-3.1.0, a dynamic binary instrumentation framework. ==5030== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al. ==5030== For more details, rerun with: -v ==5030== ==5030== ==5030== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 21 from 1) ==5030== malloc/free: in use at exit: 46,178 bytes in 549 blocks. ==5030== malloc/free: 654 allocs, 105 frees, 53,220 bytes allocated. ==5030== For counts of detected errors, rerun with: -v ==5030== searching for pointers to 549 not-freed blocks. ==5030== checked 325,632 bytes. ==5030== ==5030== 1,211 (104 direct, 1,107 indirect) bytes in 1 blocks are definitely lost in loss record 1 of 3 ==5030== at 0x401A619: malloc (vg_replace_malloc.c:149) ==5030== by 0x8098B14: Perl_safesysmalloc (in /usr/local/bin/perl) ==5030== by 0x809AA63: Perl_my_setenv (in /usr/local/bin/perl) ==5030== by 0x8060011: perl_parse (in /usr/local/bin/perl) ==5030== by 0x805E417: main (in /usr/local/bin/perl) ==5030== ==5030== LEAK SUMMARY: ==5030== definitely lost: 104 bytes in 1 blocks. ==5030== indirectly lost: 1,107 bytes in 24 blocks. ==5030== possibly lost: 0 bytes in 0 blocks. ==5030== still reachable: 44,967 bytes in 524 blocks. ==5030== suppressed: 0 bytes in 0 blocks. ==5030== Reachable blocks (those to which a pointer was found) are not shown. ==5030== To see them, rerun with: --show-reachable=yes $