Я хотел бы оптимизировать эту подпрограмму Perl:
push_csv($string,$addthis,$position);
для размещения строк внутри строки CSV.
например, если $string="one,two,,four"; $addthis="three"; $position=2;
thenpush_csv($string,$addthis,$position)
изменит значение $string = "one,two,three,four";
sub push_csv {
my @fields = split /,/, $_[0]; # split original string by commas;
$_[1] =~ s/,//g; # remove commas in $addthis
$fields[$_[2]] = $_[1]; # put the $addthis string into
# the array position $position.
$_[0] = join ",", @fields; # join the array with commas back
# into the string.
}
Это узкое место в моем коде, так как его нужно вызывать несколько миллионов раз.
Если вы опытный вPerl, не могли бы вы взглянуть на это и предложить оптимизацию / альтернативы?Заранее спасибо!:)
РЕДАКТИРОВАТЬ: Преобразование в @fields и обратно в строку занимает время, я просто подумал, как ускорить его, когда у меня более одного суб-вызова подряд.Разделите один раз, затем вставьте в массив более одной вещи, затем присоедините один раз в конце.