Distribution: perl-ldap-0.33 Perl: 5.8 OS: Windows 2000 Hi, I found that writing an LDIF record with very long attribute values is extremely slow. I could narrow this problem down to the function _wrap() in the LDIF.pm module. It seems that wrapping the value is quite CPU extensive. The _wrap() routine isn't very efficient in handling long strings. The substr() function seems to be very slow in this case. Using my rewritten _wrap() function speeds up things quite well. Could you please provide this patch to the next release? We've been using this improved function for a while now qith great pleasure.
Greetings, Robert ---- old _wrap() ----------------------------- sub _wrap { if($_[1] > 40) { my $pos = $_[1]; while($pos < length($_[0])) { substr($_[0],$pos,0) = "\n "; $pos += $_[1]+1; } } $_[0]; } ---- new _wrap() ----------------------------- sub _wrap { my $string=$_[0]; my $len=$_[1]; my $a=(length($string)-$len>0); my $b=((length($string )-$len)/($len-1)); join("\n ",unpack("a78" x $a . "a77" x $b . "a*",$string)); }