I think
Class::Component is a nice module. But it is also a great module to get up to speed on some of the avant garde Perl oo-tech, so I'm digging into its innards, bit-by-bit. The entire source code for the thing I am studying is
online here for your convenience if you dont feel like downloading it.
Now to the question at hand. Given this code:
package Class::Component;
use strict; use warnings;
for my $method (qw/ load_components load_plugins new register_method r
+egister_hook remove_method remove_hook call run_hook NEXT /) {
no strict 'refs';
*{__PACKAGE__."::$method"} = sub { Class::Component::Implement->$m
+ethod(@_) };
}
- Why did he not put this in a BEGIN block?
- Why didn't he just write all the subroutines in the package he expects them to be called from?
Carter's compass: I know I'm on the right track when by deleting something, I'm adding functionality