The Perl 5 module autobox provides an autobox pragma. It allows methods to be called on integers, floats, strings, arrays, hashes, and code references in exactly the same manner as blessed references. The autoboxing is transparent: boxed values are not blessed into their (user-defined) implementation class (unless the method elects to bestow such a blessing) - they simply use its methods as though they are. The classes (packages) into which the native types are boxed are fully configurable. By default, a method invoked on a non-object is assumed to be defined in a class whose name corresponds to the ref() type of that value - or SCALAR if the value is a non-reference. This mapping can be overriden by passing key/value pairs to the use autobox statement, in which the keys represent native types, and the values their associated classes.