and go on with our own hacking :)use Symbol::List; @EXPORT_OK = Symbol::List::symbols('CODE');
Package Devel::GetSymbols; use strict; use vars qw($VERSION @EXPORT_OK); use base 'Exporter'; use Carp; @EXPORT_OK = qw(symbols subs); $VERSION = '0.01'; no strict 'refs'; sub symbols { my ($type, $package) = @_; $package = (caller)[0] unless defined $package; croak 'Usage: symbols(type[, package])' unless defined $type; grep defined *{"${package}::$_"}{$type}, keys %{"${package}::"} } sub subs () { symbols( CODE => (caller)[0] ) } 1; __END__ =head1 NAME Devel::GetSymbols - get a list of symbols that match a certain type =head1 SYNOPSIS use Devel::GetSymbols qw(symbols subs); my @subroutines = symbols('CODE'); my @subroutines = subs(); # equal # @subroutines includes 'symbols', because it was imported # into this package. use Data::Dumper; print "$_\n" for symbols('SCALAR', 'Data::Dumper'); use base 'Exporter'; @EXPORT_OK = symbols('CODE'); # Yuch. @EXPORT_OK = subs(); # Ditto. @EXPORT = grep /^[A-Z_]+$/, symbols('CODE'); # Export constants =head1 DESCRIPTION This module just does a grep on some keys, but can save a lot of devel +opment time. =over 10 =item symbols Takes type and optional package name as arguments and returns a list o +f symbols that are of that type and in that package. Defaults to the calling pac +kage. Type can be one of qw(ARRAY CODE FORMAT GLOB HASH IO SCALAR). I guess +C<CODE> will be used most :) =item subs Shorthand for C<symbols('CODE')>. Does not take arguments (use C<symbo +ls> if you want to get it from another package). =back =head1 KNOWN BUGS None yet =head1 AUTHOR Juerd <juerd@juerd.nl> =cut
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Symbol::List
by metadoktor (Hermit) on Jan 23, 2002 at 16:34 UTC | |
by busunsl (Vicar) on Jan 23, 2002 at 16:48 UTC | |
by Juerd (Abbot) on Jan 23, 2002 at 18:11 UTC | |
|
Re: Symbol::List
by busunsl (Vicar) on Jan 23, 2002 at 16:54 UTC | |
by Juerd (Abbot) on Jan 23, 2002 at 18:06 UTC | |
|
(tye)Re: Symbol::List
by tye (Sage) on Jan 24, 2002 at 04:22 UTC | |
by Juerd (Abbot) on Jan 24, 2002 at 04:46 UTC | |
by Jouke (Curate) on Jan 24, 2002 at 13:08 UTC | |
by Juerd (Abbot) on Jan 24, 2002 at 14:40 UTC | |
by demerphq (Chancellor) on Jan 24, 2002 at 14:52 UTC | |
by Juerd (Abbot) on Jan 24, 2002 at 16:29 UTC | |
by larryk (Friar) on Jan 24, 2002 at 16:28 UTC | |
by Juerd (Abbot) on Jan 24, 2002 at 16:47 UTC | |
by tye (Sage) on Jan 24, 2002 at 19:59 UTC | |
by larryk (Friar) on Jan 24, 2002 at 21:05 UTC | |
|
Re: Symbol::List
by Juerd (Abbot) on Jan 25, 2002 at 00:32 UTC |