Next | Tricks of the Wizards | 196 |
This exporter can be inherited by subclasses of Rings:
package Rings; use Carp;
%exports = map {$_ => 1} qw(Narya Nenya Vilya);
sub import { my $caller = caller; my $package = shift; my $exported = \%{$package . '::exports'}; for my $name (@_) { unless ($exported->{$name}) { croak("Module $package does not export &$name; aborting"); } *{$caller . '::' . $name} = \&{$package . '::' . $name}; } }
Next | Copyright © 2003 M. J. Dominus |