I noticed that the LOOP sections aren't optimized for use with print_to.
The LOOP section gets stored in a variable which is then returned to the
output function.  Here's a modification that should make it __much__
quicker.

Line 2612 is now:
        eval { $line->output2($x, $options->{loop_context_vars}, \$result );
};

The output function for HTML::Template::LOOP is now:
sub output {
  my $self = shift;
  my $index = shift;
  my $loop_context_vars = shift;
  my $result = shift;
  my $template = $self->[TEMPLATE_HASH]{$index};
  my $value_sets_array = $self->[PARAM_SET];
  return unless defined($value_sets_array);  
  
  my $count = 0;
  my $odd = 0;
  foreach my $value_set (@$value_sets_array) {
    if ($loop_context_vars) {
      if ($count == 0) {
        @{$value_set}{qw(__first__ __inner__ __last__)} =
(1,0,$#{$value_sets_array} == 0);
      } elsif ($count == $#{$value_sets_array}) {
        @{$value_set}{qw(__first__ __inner__ __last__)} = (0,0,1);
      } else {
        @{$value_set}{qw(__first__ __inner__ __last__)} = (0,1,0);
      }
      $odd = $value_set->{__odd__} = not $odd;
      $value_set->{__counter__} = $count + 1;
    }
    $template->param($value_set);    
    $$result .= $template->output;
    $template->clear_params;
    @{$value_set}{qw(__first__ __last__ __inner__ __odd__ __counter__)} = 
      (0,0,0,0)
        if ($loop_context_vars);
    $count++;
  }
}

------------------------------------------------------------------------------
This message is intended only for the personal and confidential use of the designated 
recipient(s) named above.  If you are not the intended recipient of this message you 
are hereby notified that any review, dissemination, distribution or copying of this 
message is strictly prohibited.  This communication is for information purposes only 
and should not be regarded as an offer to sell or as a solicitation of an offer to buy 
any financial product, an official confirmation of any transaction, or as an official 
statement of Lehman Brothers.  Email transmission cannot be guaranteed to be secure or 
error-free.  Therefore, we do not represent that this information is complete or 
accurate and it should not be relied upon as such.  All information is subject to 
change without notice.




-------------------------------------------------------
This SF.net email is sponsored by: ValueWeb: 
Dedicated Hosting for just $79/mo with 500 GB of bandwidth! 
No other company gives more support or power for your dedicated server
http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/
_______________________________________________
Html-template-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/html-template-users

Reply via email to