in reply to Object passed by reference or value?

I'm sure I'm missing something awfully basic here.

The basic something that you are missing is: objects in Perl are references to blessed value containers.

With $img = shift, you're copying the reference, not the object itself. Try $img = shift->Copy;.

Juerd # { site => 'juerd.nl', plp_site => 'plp.juerd.nl', do_not_use => 'spamtrap' }