There are lots of 'environments' that you could check for UTF8-compatibility:
- Whatever console you are running your perl scripts from
- The table-definition in your database
- The connection to your database
- phpmyadmin and everything related (webserver, php etc)
Some are trivial, others not so much :)
Does it work when you are inserting the data using phpmyadmin?
What about other mysql-clients...what do they show when retrieving the data?
What is shown when you query the data from the database using a perl script and dump it to (your UTF8-supporting) console?
Maybe phpmyadmin is borked.
Maybe your connection to mysql is not set to UTF8, which causes the mysql-driver to convert your UTF8-data to latin1 before it ends up in the database.
Maybe it's something else entirely.