>>>>> "Curtis" == Curtis Poe <[EMAIL PROTECTED]> writes:

Curtis>   use Template;

Curtis>   my $template = Template->new;
Curtis>   sub foo {
Curtis>       my @colors = @_;
Curtis>       sub { push @colors, shift @colors; return $colors[0] };
Curtis>   }

Curtis>   my $data = foo( '#FFFFFF', '#CCCCCC' );

Curtis>   $template->process(
Curtis>       \*DATA,
Curtis>       {
Curtis>           color => $data,
Curtis>           array => [qw/one two three four/]
Curtis>       }
Curtis>   ) or die $template->error();

Curtis>   __DATA__
Curtis>   [%
Curtis>       FOREACH item = array;
Curtis>           item; " -> "; color; "\n";
Curtis>       END
Curtis>   %]

Well, then, let's go all the way around with a factory:

    use Template;
    my $template = Template->new;
    $template -> process ( \*DATA, {
      rotatethese => sub {
        my @things = @_;
        sub { push @things, shift @things; $things[0] };
      },
    }) or die $template->error();
    __END__
    [% colors = rotatethese('#00ff00', '#ff0000', '#0000ff');
      FOREACH item = [1..10];
        item; " => "; colors; "\n";
      END;
    %]

:-)


-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<[EMAIL PROTECTED]> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!


Reply via email to