Perry Money Language
Exact decimals. Every cent accounted for.
Perry is an English-style programming language for exact decimal calculations,
created by Mzwandile Zulu. It is written in plain C and never uses floating point,
so 0.1 + 0.2 is exactly 0.3, and every amount is rounded the way its currency
requires.
never_changes_ VAT = 15%
rent = 8500.00 ZAR
electric = 1250.50 ZAR
total = rent + electric
show_me_results("Total:", total)
show_me_results("VAT:", vat_on_ total)
check_if_ total is_greater_than_ 9000.00 ZAR:
show_me_results("Over budget")
since_then_:
show_me_results("Within budget")
What you get
- Run with ▶ or F5. Output appears in the Perry panel; Shift+F5 stops the program.
Programs that ask questions (
ask_user_) run in the terminal so you can type answers.
- Mistakes underlined in red every time you save, and errors that happen while the
program runs are underlined on the line that caused them.
- Perry Black, a black-and-gold colour theme: Command Palette → Preferences: Color
Theme → Perry Black.
- The Perry spear icon on every
.perry file.
- Highlighting for keywords, amounts (
199.99 ZAR), percentages, dates, text and comments.
- Snippets: type
check, try, define, npv, stats, lifetable, loan and more,
then press Tab.
What Perry can do
- Amounts in different currencies that can't be mixed by accident, rounded to each
currency's decimals (ZAR 2, JPY 0, KWD 3)
split 100.00 ZAR into 3 always adds back up to exactly 100.00 ZAR
- Budgets, VAT, tax tables, loans and repayment schedules, simple and compound interest
- Reading CSV files, then filtering, sorting, grouping and saving reports
- Dates, business days and South African public holidays
- Double-entry bookkeeping that refuses entries that don't balance
because_is_ explains how any value was worked out
For universities (Perry 0.9): 12 decimal places; engineering economics (npv_,
irr_, payback_, depreciation schedules); actuarial maths (annuities, bond prices and
yields, life tables); and statistics (standard_deviation_, median_, percentile_,
correlation_, regression_). Every result is exact and rounded once, at the end.
Getting started
Perry is built from its C source code on your own computer the first time you use it.
When you open a .perry file, the extension offers to Install PERRY. Click it and
wait a few seconds, or run Perry: Install or Update PERRY from the Command Palette.
| Your computer |
Needed once |
| Windows 10/11 |
WSL with Ubuntu, and a C compiler inside it (build-essential) |
| Linux |
A C compiler (build-essential on Ubuntu) |
| macOS |
The Xcode command line tools |
The extension uses the first PERRY it finds:
- the Executable Path setting (
perrylang.executablePath)
- a
PERRY you built, in your file's folder or a folder above it
- the PERRY made by Install PERRY (in
~/.perry/bin)
PERRY on your PATH
Settings
| Setting |
What it does |
perrylang.executablePath |
Use a particular PERRY program. |
perrylang.useWsl |
Windows only: run PERRY inside WSL (on by default). |
perrylang.checkOnSave |
Check for mistakes whenever you save (on by default). |
Note
Perry is a calculation tool. Check important results, such as tax returns or loan
agreements, with a qualified professional. Tax tables and holiday lists change, so keep
your own up to date.
Perry is free and open source under the MIT licence. © 2026 Mzwandile Zulu.