Juerd, I am wondering what you mean when you keep saying "encode explicitly":
Perhaps it is time to read the Perl Unicode Tutorial :-).
If they began life as utf8, they do indeed very probably stay that way if you do nothing to them, but if that were the case, I think you might not have been asking the question that you have.
Encoding explicitly means to use encode() or encode_utf8(), in this case. It would also require that the values coming from the database are decoded at some point. The DBD::mysql module can do this for you. I don't know if it is.