ОК, поэтому, если ваш CSV разделен символами табуляции, я бы предложил, что вы хотите split
.
while ( <> ) {
print join "\t", map { s/\s+/_/gr } split /\t/;
}
Это разделит вкладки, преобразует каждую «запись», заменяя один или несколько пробелов подчеркиванием, и печатает результирующую строку.