Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Perl
Tag: 2.1.3

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib/Module
t
xt
.gitignore
.travis.yml
Build.PL
Changes
LICENSE
META.json
README.md
cpanfile

README.md

NAME

Module::Functions - Get function list from package.

SYNOPSIS

package My::Class;
use parent qw/Exporter/;
use Module::Functions;
our @EXPORT = get_public_functions();

DESCRIPTION

Module::Functions is a library to get a public functions list from package. It is useful to create a exportable function list.

METHODS

my @functions = get_public_functions()

my @functions = get_public_functions($package)

Get a public function list from the package.

If you don't pass the $package parameter, the function use caller(0) as a source package.

This function does not get a function, that imported from other package.

For example:

package Foo;
use File::Spec::Functions qw/catfile/;
sub foo { }

In this case, return value of get_public_functions('Foo') does not contain 'catfile'. Return value is ('foo').

RULES

This get_public_functions removes some function names.

Rules are here:

  • BEGIN, UNITCHECK, CHECK, INIT, and END are hidden.
  • 'import' method is hidden
  • function name prefixed by '_' is hidden.

my @functions = get_full_functions();

my @functions = get_full_functions($package)

This function get ALL functions. ALL means functions that were imported from other packages. And included specially named functions(BEGIN , UNITCHECK , CHECK , INIT and END). Of course, included also private functions( ex. _foo ).

AUTHOR

Tokuhiro Matsuno

SEE ALSO

Exporter::Auto have same feature of this module, but it stands on very tricky thing.

Class::Inspector finds the function list. But it does not check the function defined at here or imported from other package.

LICENSE

Copyright (C) Tokuhiro Matsuno

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

Something went wrong with that request. Please try again.