Revision history for Perl extension Exporter::Simple.
1.10 Thu Nov 21 17:00:15 CET 2002
- Another almost-TOTAL rewrite. Version 1.00 *was* beautiful, but didn't
quite do what we wanted. Slaven Rezic pointed out that it was still
necessary to declare our() vars in packages that imported from a module
that used Exporter::Simple and asked if this requirement could be
removed. The solution turned out to be somewhat involved (read the
source for details). Basically the problem was that we exported
everything during INIT, but perl complains if it doesn't find a
variable in a package's symbol table during BEGIN. That's why the our()
declaration was still necessary. Now I've reworked things so that
scalars, arrays and hashes get exported during BEGIN, but subroutines
get exported during INIT. It's not that simple though; read the source
to find out what kinds of hoops I had to jump through.
1.00 Sat Aug 31 18:38:27 CEST 2002
- TOTAL rewrite. Now that perl 5.8.0 is out, we have attributes
on 'our' variables. This means we don't have to clumsily export
globals, nor do we need to export lexicals (which was a weird
concept anyway). So there's no need for Filter::Simple and
PadWalker or any of the ugly workarounds that introduced. And
once it occurred to me that Exporter::Simple could just subclass
Exporter, and modules wanting to use Exporter::Simple could
subclass it, things were a lot easier. Now using the attributes
will populate the exporting package's @EXPORT, @EXPORT_OK
and %EXPORT_TAGS direcltly, and we let Exporter have its way
(with a few slight modifications).
It's beautiful. And more proof of the old adage "if it's too
complicated, there's probably something wrong with it" - when
it's right, it's rather simple and elegant and things easily
fall into place.
0.13 Fri Mar 15 22:42:16 CET 2002
- Incorporated two patches sent by Richard Clamp in response
to bug reports by Mark Fowler (thanks guys). First, Makefile.PL
now contains Filter::Simple in its PREREQ_PM, and it builds with
a newer Attribute::Handler and Filter::Simple, which mess
around with our import() sub.
0.12 Tue Jul 3 13:07:30 CEST 2001
- Changed source filter to insert lexical-inspecting code
at the end of the calling module
- Added documentation effectively saying 'our attributes
will be in 5.8.0, so we're not doing any fancy workarounds
here'
0.11 Thu Jun 7 14:00:35 2001
- Added source filter to rename custom import() routine,
so no special name is necessary
0.10 Tue Jun 6 18:37:20 2001
- Added exportable lexicals and support for a custom _import
routine. Also export() and exportable() to manually export
globals (as they can't take attributes).
0.02 Wed May 30 13:53:50 2001
- Added tests, documentation. Renamed 'Export' to 'Exported'
and 'ExportOk' to 'Exportable' (Damian's idea)
0.01 Wed May 23 12:57:49 2001
- original version; created by h2xs 1.20 with options
-XAn Exporter::Simple