in reply to Problem in inserting Spanish characters(accent) into Oracle

You don't have to care setting NLS_LANG with export every time you want to run the script. You may forget it sometime.
You can set that at the top of your script like this:
$ENV{NLS_LANG} = "AMERICAN_AMERICA.UTF8";
As to the characters being correctly inserted, try and run a test using module Unicode::MapUTF8

Insert a string converting it into UFT8 from the charset you are using, and then, upon retrieving the string, you convert it from UTF8 into the charset you are working with.

In the example bellow I use the charset suitable for portuguese. It is latin 1, so it should suit your needs
use Unicode::MapUTF8 qw(to_utf8 from_utf8); ... #convert into utf8 $str = to_utf8({ -string => 'Your string here', -charset => 'ISO-8859- +1' }); # TODO: insert into DB ..... # TODO: select stuff from database, and then $str = from_utf8({-string => $str_retrieved, -charset => 'ISO-8859-1' +}); # TODO: now check the value of $str