After saying bless reference [, class], the thingy referred to (by reference) becomes an object in the package class (by default, the current package). This means that a method call on a reference to that thingy will search for the method in package class.
So after
$y = 42;
$x = \$y;
bless $x, 'Foo';
a call of $x->print(11) will be translated to Foo
::print($x,11) if Foo::print exists (and if it doesn't, Perl will search for an appropriate method using @Foo::
ISA and Foo::
AUTOLOAD, as per the usual rules for
inheritance).
bless is often the last function called in a constructor (usually the routine Foo::new). As such, it returns its first argument, after blessing.
While typically objects are implemented as hash thingies, as the above example shows any scalar reference can be blessed.