The Exporter module implements a default import method which many modules choose to inherit rather than implement their own. Perl automatically calls the import method when processing a use statement for a module. Modules and use are documented in perlfunc and perlmod . Understanding the concept of modules and how the use statement operates is important to understanding the Exporter. The symbols can represent functions, scalars, arrays, hashes, or typeglobs.
Exports pollute the namespace of the module user.
By convention you can use a leading underscore on names to informally indicate that they are 'internal' and not for public use. As a general rule, if the module is trying to be object oriented then export nothing. Other module design guidelines can be found in perlmod . They are processed left to right. This can be used to validate that the version of the module being used is greater than or equal to the required version.