Seperti yang dicatat @choroba dalam jawabannya, bukan DBI yang melakukan apa pun dengan data. Itu hanya melewati apa yang dikembalikan oleh modul driver (DBD::mysql dalam kasus Anda).
Dalam Aturan &Peringatan Antarmuka Umum bagian dari dokumen DBI tertulis:
Saya menulis itu pada hari-hari sebelum umum untuk mengkonfigurasi Perl untuk mendukung bilangan bulat 64-bit, dan tipe floating point panjang-ganda tidak biasa. Saat ini saya menyarankan agar driver mengembalikan nilai dalam tipe Perl paling 'alami' yang tidak berisiko kehilangan data.
Untuk beberapa driver yang mungkin sulit untuk diterapkan, terutama yang mendukung pengembalian beberapa kumpulan hasil, dengan jumlah kolom yang berbeda, dari satu pegangan, seperti yang dilakukan DBD::mysql.
Saya membaca sekilas DBD::mysql docs tetapi tidak melihat penyebutan topik ini, jadi saya melihat kode yang relevan di mana saya dapat melihat bahwa DBD saat ini::mysql adalah mengembalikan angka sebagai angka. Ada juga banyak referensi untuk perubahan terbaru di area ini di log Perubahan .
Mungkin Anda menggunakan DBD::mysql versi lama dan harus memutakhirkan.