princepawn has asked for the wisdom of the Perl Monks concerning the following question:

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(@_) }; }
  1. Why did he not put this in a BEGIN block?
  2. 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
  • Comment on TIoCC :: why was the implementation of these methods delegated to another package?
  • Download Code

Replies are listed 'Best First'.
A reply falls below the community's threshold of quality. You may see it by logging in.