in reply to OO semantics quandary

Well, I still haven't released this revision :-/ but I ended up with (years ago)
sub new { local $_; my $proto = shift; my($class, @isect, %count); my %class = ( -f => 'Font', -C => 'Control' ); $count{$_}++ for (keys %{ {@_} }, keys %class); $count{$_} == 2 && push(@isect, $_) for keys %count; croak("Cannot new both -C and -f") if scalar @isect > 1; $class = shift(@isect) || '-f'; $class = 'Text::FIGlet::' . $class{$class}; $class->new(@_); }

--
I'm not belgian but I play one on TV.