>>>>> "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!