in reply to use sqlldr with perl

possibly has nothing to do with your problem, but this
if($filename){
only checks for "not-emptyness" of the filename.
You probably intended one of the -X functions (probably one or more of -e -r -f -s -T).

From the rest of the discussion, my guess is that the problem is in fact the encoding of the filename, as our Anonymous brother seems to hint

Replies are listed 'Best First'.
Re^2: use sqlldr with perl
by Anonymous Monk on Jan 28, 2015 at 10:46 UTC

    only checks for "not-emptyness" of the filename.

    truthiness of the filename :)