The module Interpolate.pm contains a single function named interpolate. This is called as
interpolate(\$tmpl, %inter);with a string $tmpl where it interpolates variables using %inter. The nice thing is that it can handle arrays.
It can be used for cgi pages or as a report generator.
One of several possible concepts concerning GUI development is to have seperate files containing window descriptions. This is to seperate the GUI design from the implemented functionality.
Doing a few cgi pages, I missed such a beast. The obvious simple thing to do is:
s/\$(\w+)/$value{$1}/g.This is very limited because it can't handle arrays. And in most cases there are things like e.g. listboxes to be dynamically filled.
The way this package handles this is to handle arrays by an universal example:
<form> <select name="pizza" size="3"> <option value="@+list$value">@+list$entry</option> <option value="@-list">@-list</option> </select> </form>
So there are two types of names.
The interpolate function takes a hash of the form
@list = ({'value' => '11', 'name' => 'Funghi'}, {'value' => '12', 'name' => 'Margherita'}, {'value' => '13', 'name' => 'Spinacci'}) %inter = ( 'list' => \@list );
It takes the first line and does the obvious with the first entry. Then it appends the section from the universial which is between the two lines. After this it takes the first line again to the obvious with the second entry.
This results in
That's it.