in reply to Reading CSV Function

Just a general piece of advice, but it's best to avoid hand-rolling your own CSV parser. Use Text::CSV instead, preferably with Text::CSV_XS also installed so you get the speed boost.

As for handling arguments, you can use Boolean assignment in many cases. For example this

$columnSeperatorChar = "," if ($columnSeperatorChar eq "");

can be written as

$columnSeperatorChar ||= ",";

(assuming you will never use a 0 as a column separator)