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