From
DBD::Oracle
A slightly more subtle problem can occur with NUMBER types. The default NLS settings might format numbers with a fullstop (".") to separate thousands and a comma (",") as the decimal point. Perl will generate warnings and use incorrect values when numbers, returned and formatted as strings in this way by Oracle, are used in a numeric context. You could explicitly convert each numeric value using the TO_CHAR(...) function but that gets tedious very quickly. The best fix is to change the NLS settings. That can be done for an individual connection with the code below.
$dbh->do("ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '.,'");
-- gam3
A picture is worth a thousand words, but takes 200K.