A follow-up to my last post... adding this line to the render func:
$tmpl =~ s/__\((.*?)\)__/<%=($1)%>/gm; # fixup embedded tests Allows this construct to be used: __(__F_ONSALE__?'YES':'NO')__ These constructs also work as expected: Item on sale? Yes or No: __(__F_ONSALE__?'YES':'NO')__ Item NOT on sale? Yes or No: __(!__F_ONSALE__?'YES':'NO')__ Price > 5? Yes or No __(__AMT_PRICE__>5?'YES':'NO')__ Item on Sale? Sale Price or Reg Price: __(__F_ONSALE__?__AMT_SALE__:__AMT_PRICE__)__ Here is the complete render func to date: sub render { ## process a body-template string and render appropriately my ($tmpl, $hash, $fmt) = @_; $tmpl =~ s/__\[(.*?)\]__/<$1>/gm; # fixup delayed-embedded xmlsubs $tmpl =~ s/__\((.*?)\)__/<%=($1)%>/gm; # fixup embedded tests while ($tmpl =~ /__(.*?)__/) { my $TOKEN = $1; my $token = lc($TOKEN); if ((my $fmt = $$fmt{$TOKEN}) ne undef) { # to-uppercase if ($fmt =~ /^%uc/i) { $fmt =~ s/[^0-9]//gm; $$hash{$tok en} = uc(substr($$hash{$token}, 0, $fmt || length($$hash{$token}))); } # to-lowercase elsif ($fmt =~ /^%lc/i) { $fmt =~ s/[^0-9]//gm; $$hash{$ token} = lc(substr($$hash{$token}, 0, $fmt || length($$hash{$token}))); } # picture else { $$hash{$token} = sprintf($fmt, $$hash{$token}); } } $tmpl =~ s/__${TOKEN}__/$$hash{$token}/gme; } $Response->Include(\$tmpl); } __END__ This is getting cool :) John -- -------------------------------------------------------------------------------- Check out http://www.Wizard.Org for great deals on Electronic Parts *NEW* Computer Parts & Accessories - Drives - LCD - Systems - Linux -------------------------------------------------------------------------------- ** Affordable Online Store w/Merchant Card Processing & Paypal ** Write to us: [EMAIL PROTECTED] -- Get your Store Online Today! -------------------------------------------------------------------------------- --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]