sub foo { return _foo_scalar(@_) if(@_==1); return _foo_hash(@_) unless(scalar(@_) % 2); }