Under the hood, List::Compare::new() calls a different _init() routine depending on the number of arguments passed to it:
sub new {
$class = shift;
@args = @_;
if (@args > 2) {
$class .= '::Multiple';
$self = bless {}, ref($class) || $class;
} else {
$self = bless {}, ref($class) || $class;
}
$dataref = $self->_init(@args);
%$self = %$dataref;
return $self;
}
| Previous | Back to start of show | Next |
| Slide: 47 args_for_initializers | © 2003 James E. Keenan |