Compute lets you compute new values in the database. You can enter a Perl expression for each field. For each field, the default expression shown is the last non-empty expression entered earlier in the session for that field. When doing the computation, empty expressions are ignored. An expression consisting only of white space is an error. To be precise, if expression expr is specified for field fieldname, the result of
do { expr ; }is assigned to field fieldname, so expr may actually be a list of statements. Assignment to the current record is done after all the expressions are evaluated.
The expression is evaluated in a context where the following variables are defined:

During the computation for one record, these variables keep their value unless you change them yourself. In the deleted records, new fieldvalues are computed too.
I wanted to include the following but the implementation caused Perl to crash.
Before the computation of the first record, a reset('[a-z]') is done. This implies that variables starting with a lower-case letter are reset, while variables starting with an upper-case letter retain their value from one Compute to another.It will be included in Jinx as soon as the patch comes out.
Compute can screw up Jinx and your data in many ways.
Introducing TABs and/or newlines will ruin the presentation.
Introducing newlines in fields will corrupt the record structure when you
write the database to disk.
Accessing variables in package main may crash Jinx.
It is hard to decide what action to take if something like this happens.
One thing has been taken care of though.
If a computed field value contains the value of $;,
it is replaced by $; because $; is used in Jinx as a
field separator in records.
There is no way (yet) to access fields in other records than the current record. Also it is not (yet) possible to bind an expression to a field from one session to another.