The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl
#
# $Id: benchmark.pl,v 1.2 1999/10/24 13:31:55 tai Exp $
#
# Simple script to compare speed of Text::Template and this module.
#

use Benchmark;
use Text::Template;
use Text::SimpleTemplate;

$text = <<'EOF';
name: { $name }
type: { $type }
EOF

$text = $text x 1024;
$name = 'foobar';
$type = 'string';

timethese(10, {
    'Builtin::Eval'        => \&func_00,
    'Text::SimpleTemplate' => \&func_01,
    'Text::Template'       => \&func_02,
});

exit(0);

sub func_00 {
    $tmpl = $text;
    $tmpl =~ s/{(.*?)}/eval($1)/ge;
}

sub func_01 {
    $tmpl = new Text::SimpleTemplate;
    $tmpl->pack($text, LR_CHAR => [qw({ })])->fill;
}

sub func_02 {
    $tmpl = new Text::Template(TYPE => 'STRING', SOURCE => $text);
    $tmpl->fill_in(DELIMITERS => [qw({ })]);
}