Provided by: libsub-exporter-globexporter-perl_0.002-1_all bug


       Sub::Exporter::GlobExporter - export shared globs with Sub::Exporter collectors


       version 0.002


       First, you write something that exports globs:

         package Shared::Symbol;

         use Sub::Exporter;
         use Sub::Exporter::GlobExport qw(glob_exporter);

         use Sub::Exporter -setup => {
           collectors => { '$Symbol' => glob_exporter(Symbol => \'_shared_globref') },

         sub _shared_globref { return \*Common }

       Now other code can import $Symbol and get their *Symbol made an alias to

       If you don't know what this means or why you'd want to do it, you may want to stop reading

       The other class can do something like this:

         use Shared::Symbol '$Symbol';

         print $Symbol; # prints the scalar entry of *Shared::Symbol::Symbol


         use Shared::Symbol '$Symbol' => { -as => 'SharedSymbol' };

         print $SharedSymbol; # prints the scalar entry of *Shared::Symbol::Symbol


       Sub::Exporter::GlobExporter provides only one routine, "glob_exporter", which may be
       called either by its full name or may be imported on request.

         my $exporter = glob_exporter( $default_name, $globref_locator );

       The routine returns a collection validator that will export a glob into the importing
       package.  It will export it under the name $default_name, unless an alternate name is
       given (as shown above).  The glob that is installed is specified by the $globref_locator,
       which can be either the globref itself, or a reference to a string which will be called on
       the exporter

       For an example, see the "SYNOPSIS", in which a method is defined to produce the globref to
       share.  This allows the glob-exporting package to be subclassed, for for the subclass to
       choose to re-use the same glob when exporting or to export a new one.

       If there are entries in the arguments to the globref-exporting collector other than those
       beginning with a dash, a hashref of them will be passed to the globref locator.  In other
       words, if we were to write this:

         use Shared::Symbol '$Symbol' => { arg => 1, -as => 2 };

       It would result in a call like the following:

         my $globref = Shared::Symbol->_shared_globref({ arg => 1 });


       Ricardo Signes <>


       This software is copyright (c) 2010 by Ricardo Signes.

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