Here's my suggestion:
firstly use
Class::DBI for data access:
package Currency;
use base 'Class::DBI::mysql';
__PACKAGE__->set_db('Main', 'dbi:mysql:dbname', 'user', 'password');
__PACKAGE__->set_up_table("currency");
1;
Amongst (many) other things, this gives you an easy way to retreive all records in the currency table, or to retreive a particular record given its primary key. Class::DBI has very good documentation.
Now you can use it like this in the view component:
<h3>Currencies:</h3>
<table cellpadding=2>
<tr id=tableheadcolor>
<th>Currency</th>
<th>Cid</th>
</tr>
% while (my $currency = $iter->next) {
% $row++;
% $shadetable = ($row % 3 == 0 ? q{id="shadetable"} : "");
<tr <% $shadetable %>>
<td>$currency->currency</td>
<td>$currency->cid</td>
</tr>
% }
</table>
<%once>
use Currency;
my $iter = Currency->retrieve_all;
</%once>
<%init>
my $row=0;
my $shadetable;
</%init>
And like this in the form component:
<h3>Make a new currency entry</h3>
<form action="comp/insert.mas?form=add_currency" method="post">
<table cellpadding=2>
<tr>
<td align=right>Currency:</td>
<td><input name="currency" type="text" value="<% $currency_val
+ %>" size="5"></td>
</tr>
</table>
<input type="submit">
</form>
<& /view_currency.html &>
<%args>
$cid => 0
</%args>
<%init>
my $currency_val = "";
if($cid ) {
$currency_val = Currency->retrieve($cid)->currency;
}
</%init>
Finally, I'd strongly suggest reading the
Mason Book (the whole thing is available to read online).