in reply to OO perl query
You can invoke it like Foo::Bar->generate_hash($i, $j, $k) instead of $obj->generate_hash($i, $j, $k) so that 'Foo::Bar' gets shift'd off, BUT only if the generate_hash() method doesn't invoke any methods on $self that require an actual object instead of just the class name ... (whether this is actually good OO practice or not, i'll leave that for others to comment on)