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) ); }