Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

pudge (1)

pudge
  (email not shown publicly)
http://pudge.net/
AOL IM: Crimethnk (Add Buddy, Send Message)

I run this joint, see?

Journal of pudge (1)

Thursday January 09, 2003
12:55 PM

Devel::FindGlobals

[ #9870 ]

This module finds all your globals and prints out their sizes (thanks to Devel::Size). Here's an example of its use. It can also return the data as a hashref instead of printing it. Is it worth putting on the CPAN?

[pudge@bourque Data]$ perl -MDevel::FindGlobals -wle 'print print_globals_sizes(exclude_match => [qw(warnings overload VERSION$ EXPORT(_\w+)?$ Exporter Carp DynaLoader)])'
 
Name of SCALAR variable                                    Size       Total Size
========================================================================== ======
$main::%08                                                   96               96
$main::%0F                                                  103              103
$main::%16                                                   41               41
$main::%17                                                   96               96
$main::%17ARNING_BITS                                        96               96
$main::%18                                                   29               29
$main::!                                                     96               96
$main::"                                                     26               26
$main::$                                                     16               16
$main::+                                                     96               96
$main::-                                                     96               96
$main::/                                                     98               98
$main::0                                                     99               99
$main::1                                                     96               96
$main::@                                                    264              264
$main::]                                                     43               43
 
Name of ARRAY variable                                     Size       Total Size
========================================================================== ======
@DB::args                                                    56               56
@main::+                                                    108              108
@main::-                                                    108              108
@main::ARGV                                                  56               56
@main::INC                                                  100              419
@main::_                                                     68              437
 
Name of HASH variable                                      Size       Total Size
========================================================================== ======
%Config::Config                                             144              144
%main::@                                                     92               92
%main::ENV                                                 1175             4824
%main::INC                                                  540             1345
%main::SIG                                                 1255             4424

Now Playing: It's Nice To Be With You - The Monkees (The Monkees Greatest Hits)

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • I believe it's useful and CPAN-worthy, notably for modperl apps. It would be nice to be able to filter out Perl's builtins as well to see what genuine globals have been introduced.

    --

    -- Robin Berjon [berjon.com]

    • It is easy to filter out any globals you want. You could add ^main:: and catch everything in the main package. Of course, someone could stick a new global in main, and you'd miss it ...
  • CPAN that puppy forthwith. I agree that more filtering of Perl built-ins would be good (not just filter patterns, but actually avoiding $!, @+, @DB::args, etc.).

    --

    --rjray

    • Patches welcome. ;-)

      I'll commit it probably next week. My computing life is a shambles and I need to clean it up.