in reply to Bless and Do

One can bless only references, but all kind of references!

While the "standard" is to bless hash-refs, there are occasions where blessing array-refs or code-refs or even scalar-refs make much sense.

BUT there is no "literal notation" for scalar-refs (like [...] or sub{...} )!

That's why a do construct is used, to avoid temporary variables¹.

IIRC does TheDamian talk about this in his (recommended!) PBP book.

HTH! :)

Cheers Rolf

(addicted to the Perl Programming Language)

update

¹) like

$temp_scalar = 5; my $scalar_ref = \$temp_scalar; bless $scalar_ref, ...