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.

Homepage:
https://metacpan.org/release/autobox
