Interpreter efficiency is identical in both cases. What's more interesting to me is programmer efficiency, specifically maintainability. And, there's no easy answer. In a Perl context, I guess it's whether or not your program is more OO (where you would pass the blessed hashref) or more functional (where you would pass the value in order to be less coupled). It's an interesting thought exercise.