Skip to content
Docs Try Aspire
Docs Try

PerlAppResource Constructors

Class Constructors 1 member
Represents a Perl application resource.
Constructor(string, string, string) Section titled Constructor(string, string, string)
Represents a Perl application resource.
public class PerlAppResource
{
public PerlAppResource(
string name,
string executablePath,
string appDirectory)
{
// ...
}
}
name string The name of the resource in the application model.
executablePath string The path to the Perl executable. This can be:
  • An absolute path: "/usr/bin/perl"
  • A relative path: "./local/bin/perl"
  • A command on the PATH: "perl" or "myperl"
The executable is typically "perl" (resolved from PATH), or a path to a perlbrew-managed Perl installation's bin directory.
appDirectory string The working directory for the Perl application. Perl scripts and modules will be resolved relative to this directory. This is typically the root directory of your Perl project containing your main script and any local modules.

This resource allows Perl applications (scripts, web servers, APIs, background services) to run as part of a distributed application. The resource manages the Perl executable, working directory, and lifecycle of the Perl application.

Perl applications can expose HTTP endpoints, communicate with other services, and participate in service discovery like other Aspire resources. They support automatic OpenTelemetry instrumentation for observability when configured with the appropriate Perl packages.

This resource supports various Perl execution environments including:

  • System Perl installations
  • User specified Perl environments
  • Local::Lib environments

Add a Perl web application using Mojolicious or Dancer2:

var builder = DistributedApplication.CreateBuilder(args);
var perl = builder.AddPerlApi("api", "../perl-api", "app.pl")
.WithHttpEndpoint(port: 5000)
.WithArgs("--host", "0.0.0.0");
builder.AddProject<Projects.Frontend>("frontend")
.WithReference(perl);
builder.Build().Run();