This repository showcases examples for using Perl in Aspire. The goal is to show a few different integration shapes and keep the samples simple but showing real use scenarios.
The current repo includes runnable examples today, plus planning docs for additional scenarios we want to add next.
I am not an expert in Perl, but I know most people haven't used it much at all. I'm trying to put things together to help people visualize using it, so be nice.
I try to maintain parity between windows and linux over time, but the perl ecosystem is largely linux first now, so the priority is Linux first.
If one of these doesn't work and you're on Windows, you can use the provided dev container to run the samples in the repo, or you can open an issue and I can see if it's resolvable.
Minimal file-based AppHost example for wiring a Perl script into Aspire. This is the smallest sample in the repo and the easiest place to validate package installation behavior and basic apphost shape for adding something in Perl.
Full-stack file-based example with a Perl API and worker service, a database-backed workflow, and a Vite frontend. This sample is the main reference for Perl plus frontend plus data-service integration in a lightweight AppHost shape.
Multi-project Aspire solution that pairs Perl with a Blazor web application and supporting C# services. This is to highlight just that it can be a backend exclusively if you want, and just stole the /weatherforecast behavior from the blazor template as a shortcut to something familiar.
Multi-project Aspire solution with a Next.js frontend, a Perl API, and a Postgres-backed storage setup. This sample shows a modern React-style frontend (even if it's kinda ugly) talking to a Perl service through Aspire service discovery and coordinated startup.
Multi-project Aspire solution with an Angular frontend and a Perl API. This sample shows Angular dev-server integration, proxying to the Perl backend, and the same package/dependency setup used by the other Perl web samples.
The broader sample roadmap lives in docs/examples-plan.md. Planned scenarios currently include:
- Mojolicious full-stack app
- Perlbrew environment demo
- Dockerfile publishing example
- Windows CPAN installer HTTPS failure: on Windows, the default
cpaninstaller path can fail under Aspire installer resources during HTTPS fetches even though the same Perl install works from a normal shell and from a trivial wrapper. - Duplicate installer resource name collision: two resources that use the same
.WithPackage()dependency can generate colliding installer resource names and prevent the AppHost from starting.