¿Por qué mi comparación de valores devuelve falso cuando los valores son los mismos?

Tengo un script en perl que carga datos de un archivo XLS de Excel en una base de datos. Primero, verifica si la fecha y hora del valor del archivo ya existe en la base de datos. Si lo hace, verifica si el valor del archivo es el mismo que el valor que está en la base de datos. Si son iguales, se omite el valor. Si son diferentes, el valor en la base de datos se actualiza.

El código que hace la comparación es:

if($dbVal != $fileVal) {
  &UpdateData($id, $dt, $fileVal);
}

El problema es que a veces, aunque los dos valores 'se ven' iguales, la comparación decide que no lo son y se ejecuta la actualización secundaria. A continuación se muestra un extracto de un registro de depuración. Para cada valor del archivo, imprime el valor db y el valor del archivo. Si se ejecuta la actualización sub, se imprime la línea "Actualizando ...":

dbVal = '68800812'; file val = '68800812'
dbVal = '66649164'; file val = '66649164'
Updating:  41248 : 01/01/2011 07:00 : 66649164
dbVal = '64975681'; file val = '64975681'
dbVal = '64037179'; file val = '64037179'
dbVal = '64095165'; file val = '64095165'
dbVal = '64917078'; file val = '64917078'
dbVal = '66584188'; file val = '66584188'
Updating:  41248 : 01/01/2011 12:00 : 66584188

Así que en el fragmento anterior, hubo dos instancias en las que db val y el archivo val se ven iguales pero la actualización sub se ejecutó de todos modos, lo que significa que la comparación se volvió verdadera cuando parece que debería haber sido falsa.

¿Alguna idea / idea?

Dave

Respuestas a la pregunta(4)

Su respuesta a la pregunta