Have you considered HTML::Template::Expr:
#!/usr/bin/perl
use strict;
use warnings FATAL => 'all';
use Data::Dumper;
use Term::ReadLine;
use HTML::Template::Expr;
my %data = (
a => 5,
b => 1,
c => 7,
d => 100,
);
my $term = Term::ReadLine->new('foo');
my $expr;
while (1) {
$expr = $term->readline('Enter expression: ');
my $tmpl = compile($expr,[keys %data]);
$tmpl->param(\%data);
print Dumper ($tmpl->output);
}
sub compile {
my $expr = shift;
my $known_cols = shift;
my $tmpl_expr = "";
$tmpl_expr .= sprintf ('<TMPL_VAR expr="%s">', $expr);
#
# 'declare' known 'columns'
#
$tmpl_expr .= join('', map {sprintf('<TMPL_IF "%s"></TMPL_IF>',$_)}
+@$known_cols);
warn("expr=$tmpl_expr");
return HTML::Template::Expr->new(
die_on_bad_params => 1,
scalarref => \$tmpl_expr);
}
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|