The interesting thing is that it is more than 2 times faster compared to using object and passing the values by name.
Eeek. I'm a diehard
Params::Validate user and so, on top of passing my parms by name, I also validate them. I shudder to think of the time lost... then again Mason uses P::V internally.
And writing code without validating parameters is poor software engineering. Instead of trying to add hairs up to a head, I personally would just follow the 80/20 rule and try to optimize that 20% that might be causing speed issues.
Carter's compass: I know I'm on the right track when by deleting something, I'm adding functionality