K2LL33D SHELL

 Apache/2.4.7 (Ubuntu)
 Linux sman1baleendah 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64
 uid=33(www-data) gid=33(www-data) groups=33(www-data)
 safemode : OFF
 MySQL: ON | Perl: ON | cURL: OFF | WGet: ON
  >  / usr / share / perl / 5.18.2 / Package /
server ip : 104.21.89.46

your ip : 172.69.17.7

H O M E


Filename/usr/share/perl/5.18.2/Package/Constants.pm
Size2.31 kb
Permissionrw-r--r--
Ownerroot : root
Create time27-Apr-2025 10:10
Last modified21-Nov-2018 01:11
Last accessed06-Jul-2025 11:54
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
package Package::Constants;

use strict;
use vars qw[$VERSION $DEBUG];

$VERSION = '0.02';
$DEBUG = 0;

=head1 NAME

Package::Constants - List all constants declared in a package

=head1 SYNOPSIS

use Package::Constants;

### list the names of all constants in a given package;
@const = Package::Constants->list( __PACKAGE__ );
@const = Package::Constants->list( 'main' );

### enable debugging output
$Package::Constants::DEBUG = 1;

=head1 DESCRIPTION

C<Package::Constants> lists all the constants defined in a certain
package. This can be useful for, among others, setting up an
autogenerated C<@EXPORT/@EXPORT_OK> for a Constants.pm file.

=head1 CLASS METHODS

=head2 @const = Package::Constants->list( PACKAGE_NAME );

Lists the names of all the constants defined in the provided package.

=cut

sub list {
my $class = shift;
my $pkg = shift;
return unless defined $pkg; # some joker might use '0' as a pkg...

_debug("Inspecting package '$pkg'");

my @rv;
{ no strict 'refs';
my $stash = $pkg . '::';

for my $name (sort keys %$stash ) {

_debug( " Checking stash entry '$name'" );

### is it a subentry?
my $sub = $pkg->can( $name );
next unless defined $sub;

_debug( " '$name' is a coderef" );

next unless defined prototype($sub) and
not length prototype($sub);

_debug( " '$name' is a constant" );
push @rv, $name;
}
}

return sort @rv;
}

=head1 GLOBAL VARIABLES

=head2 $Package::Constants::DEBUG

When set to true, prints out debug information to STDERR about the
package it is inspecting. Helps to identify issues when the results
are not as you expect.

Defaults to false.

=cut

sub _debug { warn "@_\n" if $DEBUG; }

1;

=head1 BUG REPORTS

Please report bugs or other issues to E<lt>[email protected]<gt>.

=head1 AUTHOR

This module by Jos Boumans E<lt>[email protected]<gt>.

=head1 COPYRIGHT

This library is free software; you may redistribute and/or modify it
under the same terms as Perl itself.

=cut

# Local variables:
# c-indentation-style: bsd
# c-basic-offset: 4
# indent-tabs-mode: nil
# End:
# vim: expandtab shiftwidth=4: