my ($meth,@parts)=/.../;
exists($dispatch{$meth}) and $disptach{$meth}->(@parts);
####
sub blah {
$foo->SUPER::blah(@_);
...
}
####
use warnings::register;
####
sub foo {
my $array_ref=shift;
ref($array_ref) ne "ARRAY"
and die "Can't use anything but an array";
...
}