On Tue, 11 Jun 2002, Nico Erfurth wrote:

> It changes the way arrays/loops are handled.
> 1.) If you pass in a array-reference, it will be not dereferenced anymore
>     I did this, so i can use a small Wrapper-class, which allows me to
>     tie a database-statement to an array, and returning the results row by
>     row, so i don't need to waste memory inside of mod_perl(Reading all
>     results at once).

This is incorrect.  People like to do:

  my @loop = ( { row => 'foo' }, { row => 'bar'} );
  $template->param(LOOP_ONE => \@loop);
  @loop = ( { row => 'bif' }, { row => 'bop'} );
  $template->param(LOOP_TWO => \@loop);

If you don't copy out the contents of @loop in the first param() call then
you'll end up referencing the same array twice.  This was actually a bug
fixed in the early development of HTML::Template.

> 2.) HTML::Template::Loop::output was changed, so it appends to a given
>     scalar-reference(the one from HTML::Template::output), this saves much
>     memory if you have a big loop and combine it with the print_to-option.

That sounds interesting, but have done tests to confirm that it helps?  I
suspect that you'd have to choose a truely pathalogical data-set to see
any improvement.

> I send this patch to Sam Tregar weeks ago, and i never answered, but maybe
> someone here thinks that it's worth to have a look at it, because AFAIK
> many ppl use mod_perl+HTML::Template (i do it myself) ;)

Sorry about that!  I must have let it fall through the cracks.  Did you
send it directly to me or to the HTML::Tempate mailing-list?  Things sent
to the mailing-list tend to stay on my radar slightly longer.

-sam


Reply via email to