Skip to content
Digital Desert Perl · Canada · WWW

CGI · Perl

Digital Desert

Perl CGI development & maintenance.

CGI is a deployment model, not a moral failing. If it still fits the hosting constraint and workload, maintain it well. If another boundary solves a real problem, migrate deliberately.

index.cgi
#!/usr/bin/env perl
use v5.26;
use warnings;
use CGI;

my $request = CGI->new;

# Keep the executable boundary thin.
exit App->dispatch($request);

The work

Understand the hosting model before changing it.

CGI remains useful in some environments because the process model is simple, deployment can be straightforward and the server handles isolation between requests. Those strengths come with tradeoffs.

Digital Desert can maintain the existing model safely, separate business logic from request plumbing, and evaluate PSGI or another deployment model when the operational benefit is concrete.

Capabilities

Work worth doing carefully.

The service is shaped around the system and the constraint—not around selling a predetermined stack.

CGI application repair

Debug request handling, form flows, headers, encoding, uploads and production failures in existing CGI applications.

Security hardening

Review input boundaries, output encoding, session handling, headers, file operations and deployment assumptions.

DBI & data access

Keep database work explicit, transactional and maintainable in classic Perl web applications.

Shared-hosting deployment

Work within environments where CGI, file deployment and limited server control are real constraints.

Testability improvements

Move business logic away from the executable request boundary so it can be tested without pretending the hosting model is different.

Modernizing old CGI →

CGI-to-PSGI planning

Migrate only where persistent processes, middleware or deployment flexibility provide enough value to justify it.

Compare CGI and PSGI →

How we work

A path from uncertainty to maintainable software.

Evidence first. Change second. The goal is not novelty; it is confidence.

01 — Understand

Map the system, constraints, users and failure modes before proposing architecture.

02 — Protect

Capture behaviour with tests, backups, reproducible environments and small reversible changes.

03 — Change

Improve the system deliberately, document what changed and leave ownership easier than we found it.

Contact

Tell us what you need to build, maintain or rescue.

A useful first message can be short. Tell us what the system does, what is changing, and what is making the work difficult.