my($l_tablename, %l_data) = @_;
my(@fields, @values);
push(@fields, $_) && push(@values, $1_data{$_})
for(keys %1_data);
my($1_prepare);
{
local $" = ','; # eliminate join statements
$1_prepare = qq(
INSERT INTO $1_tablename (@fields)
VALUES (@values)
);
}
####
@list = ('arg1', ('field1' => 'value1', 'field2' => 'value2'));
# above same as:
@list = ('arg1', 'field1', 'value1', 'field2', 'value2');
$table = shift(@list); # 'arg1'
%fields = shift(@list); # 'field1'
####
my $person = new MyDB::Person(4);
$person->update(name => 'John B.');
####
&update('person', { pk => 4, name => 'John B.' });